工作中git的使用方法
在工作生产环境中,线上代码库的频繁变更会对本地代码提交合并造成影响。在此记录自己在工作中的git实践。
本地准备
本地设置master和dev两个分支,其中,master用于从线上拉取最新代码,以及代码的提交;dev用于本地开发。
开发代码
在dev分支中开发代码,完成某个功能以及每天结束都需要commit一次。
提交代码
- 切换到master分支,执行
git pull
拉取线上最新代码; - 切换到dev分支,通过
git log --graph
查看本次更新一共有多少个commit; - 在dev分支,执行
git rebase -i HEAD~n
,n为本次更新的commit个数。在打开的交互界面中,将首位commit外的pick
替换为s
,将所有commit合并为1个commit; - 在dev分支,执行
git rebase master
,接下来依次处理冲突,处理完成后执行git rebase --continue
; - 切换到master分支,执行
git merge dev
,再执行git push origin master:xxx_dev
,其中xxx_dev
为自己线上分支; - 执行
git branch -d dev
,删除dev分支。
rebase
的意思是将指定的节点当作base,即当前状态的所有diff都是在这个以这个base为标准的。举个例子,git rebase -i HEAD~n
是将HEAD~n
作为base,所以后续可以将n
个commit合成1个;git rebase master
是将当前的master
分支作为base,所以在处理完冲突后,将dev合并到master时不会有分支(因为已经把master作为base了)。