近期公司新招聘了几个实习生,大多第一次使用git,看他们被一些问题折腾的焦头烂额,看的多了,总结了一下:
- 不明白git基本工作原理
- 不明白git add,git commit,git push的分别
- 不知道何时使用分支,如何合并分支
- 不明白在更新代码之前为什么要commit
- …
- 不会应对异常情况
- 例如像处理冲突,处理完冲突该执行什么命令
- 如何回退版本,既不损坏别人的提交,又不丢失自己的修改
- …
本来想针对各种问题做一下解读,但是看了一下git官方的书籍,发现完全没有必要多写,直接看书就能找到答案,另外,解决各种问题的博客已经很多了,细看之下,真不知是郭象注庄子,还是庄子注郭象
为了让新同学少走弯路,提供一套比较稳妥的使用流程,如下:
- git clone,git pull 等命令获取到当前最新的代码到 master 分支
- git branch,git checkout 到新的分支(假设是work分支)进行修改
- 在work分支上进行相应的开发工作并commit,
- 在work分支上git branch work-cache 新建一个分支,备份自己做的修改
- git checkout 到 master 分支
- 在master分支上进行 git fetch,git rebase 操作,此时由于该分支没有任何修改,不会遇到任何冲突
- git checkout 到 work-cache 分支
- *在work-cache分支上执行 git rebase master 命令,并解决冲突,在解决冲突期间,不需有任何顾虑,因为work分支上保存着我们修改的工作,master分支上保存着当前所有人提交的最新工作,最坏的情况就是修改冲突不成,删掉该分支,重复第4步
- 修改完冲突,切回master分支,执行 git merge work-cache ,此时也不会有任何冲突
- git push origin/master
最后,推荐一本书 https://schacon.github.io/gitbook/index.html
GIT的说明文档,详细解释了GIT使用中的各种术语,以及GIT的原理、常用操作、异常处理