git合并两个不同分支的部分代码并解决冲突

这里做个实验,假设分别要将 huhu 分支上的部分代码合并到 liuy 分支上(这里涉及的文件个数未知,只知道涉及的提交)

  1. 切换到 huhu 分支上,使用 git log 找到你要合并的某个提交的 commitId,记录下来,如图
    git合并两个不同分支的部分代码并解决冲突_第1张图片
  2. 切换到 liuy 分支,执行 git cherry-pick 031f7aaae1159cd7326429ff6e60e2d01a7789c9,如果有冲突,此时会提示解决冲突,如图
    git合并两个不同分支的部分代码并解决冲突_第2张图片
    注意!!!:如果是本地在不同的文件夹拉了两个项目并且在不同的分支进行处理的话,如图
    git合并两个不同分支的部分代码并解决冲突_第3张图片

在执行 git cherry-pick [commitId] 命令时,会报错。如图
在这里插入图片描述

这是因为git cherry-pick是本地特性,本地要有这个commit才可以被git cherry-pick。但是他本地并没有这个commit id,所以出现了这个错。
这时候需要在 将 liuy 分支切换到 huhu 分支执行一下 git pull,也就是将这个编辑器窗口本地的 huhu 分支上的项目更新,此时再切换到 liuy 分支上就能看到上次的提交记录了。如图
git合并两个不同分支的部分代码并解决冲突_第4张图片
然后在 liuy 分支上执行 git cherry-pick 2b6b7b290e3c4d2994924c767de52909869e2ada 命令就可以了,如图
git合并两个不同分支的部分代码并解决冲突_第5张图片
修改之后然后写上提交内容,提交。
git合并两个不同分支的部分代码并解决冲突_第6张图片
至此,完成!
如果是要合并多个提交的内容的话建议从你想合并的最老的那一条开始合并,防止最新的代码被覆盖…
当然我用的vscode可以直接右键cherry pick
git合并两个不同分支的部分代码并解决冲突_第7张图片

你可能感兴趣的:(git)