关于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 的远程仓库操作,示例 ...
随机推荐
- WebAPI搭建(二) 让WebAPI 返回JSON格式的数据
在RestFul风格盛行的年代,对接接口大多数人会选择使用JSON,XML和JSON的对比传送(http://blog.csdn.net/liaomin416100569/article/detail ...
- linux创建日期文件名
linux创建文件名添加当前系统日期时间的方法 使用`date +%y%m%d` Example: mkdir `date +%y%m%d` tar cfvz /tmp/bak.`date +%y%m ...
- jdk各版本
1.jdk1.7: 1.1二进制变量的表示,支持将整数类型用二进制来表示,用0b开头: 1.2 Switch语句支持string类型: 2.jdk1.8:
- Java 基础(5)——数据转换 & 特殊的引用类型
数据转换 变量在第(3)篇中有讲到过八种数据类型,分别是能够用来表示整型的 byte.short.int.long 和表示浮点型的 float.double 以及字符型 char.布尔型 boolea ...
- IntelliJ IDEA 安装配置
之前一直用的eclipse,以前公司的老大推荐过用这个,但是由于项目都比较赶,没及时学习. 后面这个公司的同时都用的idea,所以就换了 其实并没有那么难主要是刚刚切换时候快捷键不熟悉,打包什么的,有 ...
- Java温故而知新(10)类的加载机制
类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的措施配合程序执行. 研究类加载机制的第二个目的是让程序能动态的控制类加载,比如热部署等,提高程序的灵活性 ...
- python对excel文件的读写操作
import xlrd,xlwt data = xlrd.open_workbook('a.xlsx') #读 table = data.sheets()[0] data_list = [] data ...
- axios拦截器请求头携带token
转—— https://github.com/superman66/vue-axios-github/blob/master/src/http.js
- mac下配置环境变量-mongo
一 1打开终端查看echo $PATH所有环境变量会显示2输入sudo vi ~/.bash_profile回车后输入密码,然后到达vim查看状态3输入i改为编辑态,在后面追加路径4按esc然后shi ...
- 用iframe踩的坑
1.无法监控iframe加载成功与否 经测试,火狐及chorme都不支持onerror事件,而且,不管iframe加载是否成功,都会触发onload事件. 1)通过postmessage消息提示是否加 ...