如何把我另一个分支上的commit拿过来
在开源过程中,每一次PR都是要经过严格的review的,这期间可能会进行多次修改,补充提交,而且这一般来说不是一个很迅速的过程,此时我们可能会先往后进行开发。我一般会把项目分模块逐步建立分支,当前一个pr合并完毕后我再基于最新代码创建分支,把我先前开发好的commit拿过来提交。
这个过程非常重要的一个命令就是git cherry-pick,该允许将特定的commit应用到当前分支上。
步骤一:确定你要拿过来的commit
找到要从另一个分支拿过来的commit的hash。
可以通过以下命令查看特定分支的commit历史(或者直接在该分支下执行git log):
git log <branch-name>
步骤二:切换到你要应用commit的分支(也就是用来提pr的分支)
可以用checkout,或者直接在vscode上用它自带的git插件切换(很方便!)
git checkout new-feature-branch
步骤三:使用git cherry-pick
应用commit
使用git cherry-pick
命令将另一个分支上的commit应用到当前分支。
假设要应用的commit hash是abc123
:
git cherry-pick abc123
如果有多个commit需要应用,可以一次性指定多个commit:
git cherry-pick abc123 def456 ghi789
处理冲突
如果在cherry-pick
过程中遇到冲突,Git会暂停cherry-pick
操作并允许你手动解决冲突。解决冲突后,执行以下命令来继续:
git add <resolved-files>
git cherry-pick --continue
如果你决定放弃当前的cherry-pick
操作,可以使用以下命令来中止:
git cherry-pick --abort