我确实从我分支的gerrit评论中挑选了出来。在 gerrit 代码审查中,我有两个补丁集,我之前挑选了一个补丁,所以现在我想做第二个补丁集,但存在冲突,我如何强制 git 接受所有更改?谢谢!
你可以告诉它总是喜欢你正在挑选的提交的更改:
git cherry-pick commitish --strategy-option theirs
commitish
可以是提交的 SHA-1 哈希,也可以是该分支的最新提交的branch-name
,branch-name~1
之前提交的等。
如果要执行相反的操作,请使用:
git cherry-pick commitish --strategy-option ours
--strategy-option
的简写是-X
(大写 X)。
PS:什么是承诺,树式?
git cherry-pick -X theirs <commit-hash-you-want-to-force-cherry-pick-from>
我通常的工作流程如下:
假设我在主服务器上并且我刚刚进行了提交。
- 我获取该提交的提交哈希。
- 然后结帐到我想要有这样的提交的分支。
- 然后运行上面的命令,例如
git cherry-pick -X theirs 5cf3412
如果您已经处于冲突状态,只需执行
# add only conflicting files here
git checkout --theirs path/to/file
git add path/to/file
git cherry-pick --continue
你可以用这样的东西来暴力破解它:
git show cb1e6a:path/to/filename > path/to/filename
git add path/to/filename
git commit
但我相信有一种更简单的方法。