保持Git的时间线性

多人协作开发一个项目的时候,难免存在其他人更新了Dev代码的情况。这时候如果直接git pull则会自动产生一个merge记录,在git log里。通常merge log是不友好的,会给代码回溯,代码review带来一些麻烦。因此一般鼓励保持git log时间线的线性,所谓线性就是不含有merge记录。

建议在pull代码的时候进行如下操作:

  1. 新开发功能的时候,先切换到你的Dev分支;
  2. 然后git pull, 保证当前是在最新的代码上;
  3. 直接进行你的开发,比如你开发2天后,这时候开发完成,需要提交代码了;此时,你本地的Dev肯定比远程的要落后几个提交;
  4. 你先使用git stash 将你本地的change暂存;
  5. 使用git status查看下本地的change是否已经暂存成功,如果是新增的文件则不会被暂存,不过没关系新增的文件不会影响merge
  6. 注意这时候你是一直在Dev分支上的,暂存完保证本地没有修改的change后,使用git pull,将本地的Dev更新到最新;
  7. 这时候基于最新的Dev,创建属于你的提交分支:git checkout -b yourFolder/branchName;
  8. 这时候你已经在你的新建分支上了;使用git stash pop将你暂存区的修改拿回来;没冲突则自动成功,进行步骤9 ; 如果有冲突,像平常一样修改代码解决冲突,这个解决冲突的动作是在你本地,不会被记录进Git;
  9. 解决完冲突后,就进行正常的提交流程,git add --all添加所有修改;再git commit -m'commit info';最后git push --set-upstream origin yourFolder/branchName ,将你的分支提交到远端;
  10. 将你的分支提交到远端后,进行常规提交PR操作,再合进Dev

上面动作的主要目的是:把你的commit调整到Dev最后一个commit之后, 并且尽量减少merge 记录。
Notes:
因为基本一个新功能就会创建一个新分支,所以附上2条批量删除本地和远程分支的命令:
因为批量删除需要先查询,我们一般将自己的分支建在自己的文件夹底下yourFolder/branchName,方便删除查询
a. 批量删除本地分支 git branch |grep  'yourFolder/' |xargs git branch -D
b. 批量删除远程分支 

git branch -r  | grep 'yourFolder/' | sed 's/origin///g' | xargs git push origin --delete

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值