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学习推荐的更多相关文章

  1. 分布式版本管理git学习资料整理推荐

    一.什么是git? Git is a free and open source distributed version control system designed to handle everyt ...

  2. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

  3. Git学习之路(2)-安装GIt和创建版本库

    ▓▓▓▓▓▓ 大致介绍 前面一片博客介绍了Git到底是什么东西,如果有不明白的可以移步 Git学习之路(1)-Git简介 ,这篇博客主要讲解在Windows上安装Git和创建一个版本库 ▓▓▓▓▓▓ ...

  4. Git学习之路(5)- 同步到远程仓库及多人协作问题

    ▓▓▓▓▓▓ 大致介绍 我们写好文件后添加到版本库,但是这样还没有做完,我们还需要将它同步到GitHub的远程仓库上,这里就以我们刚开始的drag项目为例,我们在Git学习之路(2)-安装GIt和创建 ...

  5. Git学习备忘

    本文参考廖雪峰写的精彩的git学习文档,大家可以直接去官网看原版,我这里只是便于自己记录梳理 原版地址:http://www.liaoxuefeng.com/wiki/0013739516305929 ...

  6. Git学习系列之如何正确且高效地将本地项目上传到Github(图文详解)

    不多说,直接上干货! 首先你需要一个Github账号,所以还没有的话先去注册吧! https://github.com/ 见 如何走上更高平台分享传递干货知识:(开通个人Github面向开源及私有软件 ...

  7. 【学习总结】Git学习-参考廖雪峰老师教程十-自定义Git

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

  8. 个人github链接及git学习心得总结

    个人github链接 https://www.github.com/liangjianming/test git学习心得总结​ git是一个快速,开源,分布式的版本控制系统. GitHub是一个基于w ...

  9. Git 学习(五)远程仓库

    Git 学习(五)远程仓库 之前的章节所说的是本地Git仓库的操作,版本管理的优越性显然不会仅仅在本地.远程仓库也就是服务器或是网络端的仓库操作也是必须的. 本文具体说明 Git 的远程仓库操作,示例 ...

随机推荐

  1. 一些在线开发手册api文档收藏

    java JavaSE8 api:https://docs.oracle.com/javase/8/docs/api/ JavaSE7 api:http://docs.oracle.com/javas ...

  2. 十一 Pipe

    Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 创建管道 通过Pipe.open()方法打开管 ...

  3. 读EntityFramework.DynamicFilters源码_心得_单元测试03

    上个星期我们只是显示了一个示例,怎么在EF的框架内,注入我们拓展的动态过滤器 第一步:安装EntityFramework.DynamicFilters 第二步:重写OnModelCreating方法 ...

  4. 封装hiredis——C++与redis对接(一)(string的SET与GET操作)

    在菜鸟教程自学了redis,总想着像Mysql一样,在C/C++中进行对接.于是查询了一些资料,最后找到了hiredis.然而直接用它的话,难免有点不方便.于是,对其进行封装. hiredis直接去g ...

  5. 通过反射感知Redis类里边全部的操作方法

    <?php //通过反射感知Redis类里边全部的操作方法 //根据Redis类实例化一个反射类对象 $me = new ReflectionClass('Redis'); //获得Redis类 ...

  6. Error running Tomcat8: Address localhost:1099 is already in use 错误解决

    摘要: 有时候运行web项目的时候会遇到 Error running Tomcat8: Address localhost:1099 is already in use 的错误,导致web项目无法运行 ...

  7. 05_ActiveMQ的selectors

    [ JMS Selectors ] JMS Selectors用于在订阅中,基于消息属性对消息进行过滤. 以下是个Selectors的例子:Java代码 consumer = session.crea ...

  8. Java 多线程使用

    工作中遇到的问题,记录下解决的思路 问题: 对磁盘进行碎片化测试(比如说,磁盘空间是16G),从64K开始写文件,写满后删除一半,然后写32K 的数据,写满后删除一半...直到4K写满删除一般算是结束 ...

  9. Eclipse控制台输出信息的控制(引用其他人的博客)

    当你在Eclipse中 running/debugging一个应用程序的时候,有关该应用程序的运行调试信息及日志信息都会输出到控制台(console )显示,但是Eclipse只会显示最后一部分的日志 ...

  10. July 10th 2017 Week 28th Monday

    I get that look a lot, but I never let it get to me. 我常常受到异样的目光,但我从不把它们放在眼里. I don't feel good these ...