关于Git学习推荐
Git学习除了推荐官方网站:https://git-scm.com/之外,
我个人比较推荐初学者或者被动使用者可以学习参考廖雪峰的这个教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137402760310626208b4f695940a49e5348b689d095fc000
推荐官方教程的理由是最权威最详细,推荐廖雪峰教程的原因是可以帮助初学者或者是英语不是特别好的朋友们深入浅出的学习。
不过我个人还是比较推崇官网。当然了,廖雪峰前辈的Git教程也很不错,我记得当初在校学习的时候,参考的就是他的教程。
让我不仅想起了,没有Git,也没有SVN的日子,动态web项目,和同学们一起手动来合并代码,事实证明这样效率低且出问题率高。我最先接触的版本控制还是Git,Git给我的感觉是用起来还是挺爽的。比如只要电脑在手,在哪都可以开发。而SVN就不能了。虽然说,SVN也有其代码托管,不过我还是喜欢Git。
Git和SVN及其很久之前的CVS存在什么区别,和Git的基础使用大家可以参考廖雪峰的教程。我就不再赘述。
今天我重新温习了下廖雪峰的Git教程,发现虽然开发有很长时间了,但是我对Git只仅仅局限在那么几个简单使用和简单命令而已。关于Git的代码审核和其他诸多功能我还是不太了解。当然了,自开发以来遇到的大大小小问题,发现了一个很重要的原因就是原理不懂。当使用比较熟练时,同时也看了一些相关的书籍,参考了一些朋友们写的博文,深受感触,自那后,出的问题也很少了。我想这就是收获,解决了问题,并知道了原理。
比如,今天一位同事在使用git的时候,由于忽略了git它本身存在一个叫暂存区的概念,导致代码无法提交。
git有工作区和暂存区,看的见的叫工作区,看不见的叫暂存区。
git add .相当于将文件提交到暂存区,git commit -m 'test' 相当于提交到本地仓库,最后通过git push -u origin master提交到主分支上。
当然这里还有一点要强调的是,开发者们应该有自己的开发分支,主分支一般情况下都不能动,一般动的情况是,比如像我公司每周项目出一个版本,相当于礼拜一到礼拜五的5点前,一直都在自己的分支上开发,最后合并到开发者的主分支,通常叫devp分支,最后才合并到master分支。
不过事实上,我们并没有这么做,导致的问题是,如果我们团队某个人不细心的话,比如,一般提交代码,要么是新增功能,或解决Bug,或优化某个模块等等。通常提交代码,自己并没有仔细测试,直接提交上来,导致最后,测试人员说,这么明显的bug,你们居然没有发现。那真的是有种打脸的感觉。
暂不说面子上过不去,面子事小,成本事大,就是因为没有仔细测试,导致代码出Bug,为了解决这个Bug又得拉代码开工干,其实如果在提交前仔细测试是可以避免的,自开发以来,我发现很多情况,就是因为我们软件开发者们的“懒惰”导致许多不必要的Bug。我自己当初也是如此,就是现在而言,也会犯一些错误,犯错有其自身要素,还有其制度原因。如果建立良好的代码审核制度,我觉得应该可以提高代码质量,虽说之前我写了关于Sonar的使用博文,Sonar是一款代码质量检测工具,有助于提高代码质量,但是并不具有强制性作用。关键还是自觉。但是人的自觉性,是会变的,受环境影响。制度才是王道。
这篇文章给我很大的启发,希望意识到这个问题的朋友们都可以看看:
https://www.cnblogs.com/wenhx/p/How-We-Code-Review.html
接下来我将尝试在公司推进代码审核制度,不过在此我觉得还是有必要仔细研究一下,写一个可行性方案,这样于上级领导,于团队成员都有个交代。
关于Git学习推荐的更多相关文章
- 分布式版本管理git学习资料整理推荐
一.什么是git? Git is a free and open source distributed version control system designed to handle everyt ...
- Git学习笔记(10)——搭建Git服务器
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...
- Git学习之路(2)-安装GIt和创建版本库
▓▓▓▓▓▓ 大致介绍 前面一片博客介绍了Git到底是什么东西,如果有不明白的可以移步 Git学习之路(1)-Git简介 ,这篇博客主要讲解在Windows上安装Git和创建一个版本库 ▓▓▓▓▓▓ ...
- Git学习之路(5)- 同步到远程仓库及多人协作问题
▓▓▓▓▓▓ 大致介绍 我们写好文件后添加到版本库,但是这样还没有做完,我们还需要将它同步到GitHub的远程仓库上,这里就以我们刚开始的drag项目为例,我们在Git学习之路(2)-安装GIt和创建 ...
- Git学习备忘
本文参考廖雪峰写的精彩的git学习文档,大家可以直接去官网看原版,我这里只是便于自己记录梳理 原版地址:http://www.liaoxuefeng.com/wiki/0013739516305929 ...
- Git学习系列之如何正确且高效地将本地项目上传到Github(图文详解)
不多说,直接上干货! 首先你需要一个Github账号,所以还没有的话先去注册吧! https://github.com/ 见 如何走上更高平台分享传递干货知识:(开通个人Github面向开源及私有软件 ...
- 【学习总结】Git学习-参考廖雪峰老师教程十-自定义Git
学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...
- 个人github链接及git学习心得总结
个人github链接 https://www.github.com/liangjianming/test git学习心得总结 git是一个快速,开源,分布式的版本控制系统. GitHub是一个基于w ...
- Git 学习(五)远程仓库
Git 学习(五)远程仓库 之前的章节所说的是本地Git仓库的操作,版本管理的优越性显然不会仅仅在本地.远程仓库也就是服务器或是网络端的仓库操作也是必须的. 本文具体说明 Git 的远程仓库操作,示例 ...
随机推荐
- sql server分页查询
1.引言 在列表查询时由于数据量非常多,一次性查出来会非常慢,就算一次查出来了,也不能一次性显示给客户端,所以要把数据进行分批查询出来,每页显示一定量的数据,这就是数据要分页. 2.常用的数据分页方法 ...
- JAVA数据类型中的char类型
1.JAVA中,char占2字节,16位.可在存放汉字 2.char赋值 char a='a'; //任意单个字符,加单引号. char a='中';//任意单个中文字,加单引号. char a=11 ...
- ApplicationContextAware接口
在某些特殊的情况下,Bean需要实现某个功能,但该功能必须借助于Spring容器才能实现,此时就必须让该Bean先获取Spring容器,然后借助于Spring容器实现该功能.为了让Bean获取它所在的 ...
- django基础一:web、wsgi、mvc、mtv
一.web框架 web框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以快速开发特定的系统.他山之石,可以攻玉.python的所有web框架,都是对so ...
- java实现mysql的备份还原
此文章是基于 1. 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台 2. jquery+springMVC实现文件上传 一. 简介 备份和导入是一个互逆的过程. ...
- thinkphp注册并写入数据到数据库中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 201610-H5项目总结
1.首屏进入动效使用jQuery的animate(); $('.btn_driver').animate({ left:'26%' },'slow'); $('.btn_show').animate( ...
- git使用笔记 bitbucket基本操作
实现目标: 1.将本地已经存在的项目文件保存到 bitbucket.org 2.从 bitbucket.org 检出代码库到本地 操作笔记: 1.首先在bitbucket.org创建一个代码库,并得到 ...
- SQL Server ->> XML方法
1. 得到XML类型中某个节点下子节点的数量 DECLARE @xml xml SET @xml = ' <Parameters> <Parameter name = "p ...
- SQL点点滴滴_聚集索引设计指南-转载
聚集索引基于数据行的键值在表内排序和存储这些数据行, 每个表只能有一个聚集索引, 因为数据行本身只能按一个顺序存储. 有关聚集索引体系结构的详细信息, 请参阅 聚集索引结构. 每个表几乎都对列定义聚集 ...