星空下的程序猿 2020-04-18
git rebase
是git下比较常用的命令,以下记录自己遇到较多的使用场景。
在多人协作的项目中,拉分支是很常见的事情,经常需要同步自己的分支与远端master分支一致,有两种方式:
两者的区别在于:前者会在生成一条 Merge branch master into XXX 的commit记录,而后者能保持commit干净。
git rabase
在开源提交PR时,能够更好地保持commit 整洁,消除了多余的 Merge log。
# 假设私拉分支为fix_bug,且当前处于此分支上 # 同步master分支 git fetch master git rebase master # 如何有冲突,会暂停rebase,需要手动解决冲突,然后 git add your_conflict_file git rebase --continue # 在任何时候,都可以终止rebase git rebase --abort # 会回到执行rebase前的状态 # 在当前分支git pull时有时候也会产生Merge记录 # 可以在后面加上--rebase,保持commit log整洁 git pull --rebase
# 合并最近提交的3条commit git rebase -i HEAD~3 # pick 表示选择此次commit,squash表示将此commit和上一条commit合并 # 修改完之后,wq保存退出,会合并commit # 切忌不要 git pull # 因为合并的是远程已经push的commit,要应用合并,需强制push git push -f