如何使用单独的解决分支解决 Git 冲突?
How to do Git conflict resolution using a separate resolution branch?
我在本地有以下分支机构:
- 硕士
- 分支-a
- 分支-b
- 分支-c
- 开发
我为分支 a (PRA-1)、分支 b (PRB-1)、分支 c (PRC-1) 创建了 PR(拉取请求)。我的同事审查完了我的代码。因为我知道 branch-a、branch-b、branch-c 会相互冲突,所以我创建了一个解决冲突的分支。
我从 master 解决冲突,并在解决任何冲突的同时继续合并 branch-a、branch-b、branch-c。然后,一旦它们全部完成,我将这个解决冲突的分支合并到分支-a、分支-b、分支-c。
现在我的初始拉取请求已经过代码审查,我希望我的同事审查 branch-a (PRA-2)、branch-b (PRB-2) 和 branch-c (PRC-2) 的冲突解决) 在他们各自的第二个拉取请求中。
如果需要,可以使用 git rerere (https://git-scm.com/blog/2010/03/08/rerere.html and http://git-scm.com/docs/git-rerere)。此命令可让您保存冲突解决方案,以便在需要时再次完成解决方案。
因此,为了保存冲突解决方案,您必须将三个分支合并到 master 分支中。但是你不想,因为你在等待这个合并。
我建议这些步骤:
启用 git rerere 缓存:
git config --global rerere.enabled true
从 master 创建新分支
git checkout master
git branch resolution_branch
合并并解决三个分支的冲突
git merge branch-A
# You resolve conflict
git merge branch-B
# You resolve conflict
git merge branch-C
# You resolve conflict
现在,当您合并这些分支时 Git 将解决冲突。但是,您必须将文件添加到索引以进行显式解析。如果你想要 Git 在索引中自动添加文件:
git config --global rerere.autoupdate true
我在本地有以下分支机构:
- 硕士
- 分支-a
- 分支-b
- 分支-c
- 开发
我为分支 a (PRA-1)、分支 b (PRB-1)、分支 c (PRC-1) 创建了 PR(拉取请求)。我的同事审查完了我的代码。因为我知道 branch-a、branch-b、branch-c 会相互冲突,所以我创建了一个解决冲突的分支。
我从 master 解决冲突,并在解决任何冲突的同时继续合并 branch-a、branch-b、branch-c。然后,一旦它们全部完成,我将这个解决冲突的分支合并到分支-a、分支-b、分支-c。
现在我的初始拉取请求已经过代码审查,我希望我的同事审查 branch-a (PRA-2)、branch-b (PRB-2) 和 branch-c (PRC-2) 的冲突解决) 在他们各自的第二个拉取请求中。
如果需要,可以使用 git rerere (https://git-scm.com/blog/2010/03/08/rerere.html and http://git-scm.com/docs/git-rerere)。此命令可让您保存冲突解决方案,以便在需要时再次完成解决方案。 因此,为了保存冲突解决方案,您必须将三个分支合并到 master 分支中。但是你不想,因为你在等待这个合并。 我建议这些步骤:
启用 git rerere 缓存:
git config --global rerere.enabled true
从 master 创建新分支
git checkout master
git branch resolution_branch
合并并解决三个分支的冲突
git merge branch-A
# You resolve conflict
git merge branch-B
# You resolve conflict
git merge branch-C
# You resolve conflict
现在,当您合并这些分支时 Git 将解决冲突。但是,您必须将文件添加到索引以进行显式解析。如果你想要 Git 在索引中自动添加文件:
git config --global rerere.autoupdate true