强迫git接受cherry-pick的变化

Jia*_*ang 38 git git-cherry-pick

我从我的分支机构的gerrit评论中选择了樱桃.在gerrit代码审查中,我有两个补丁集和我之前挑选过的补丁,所以现在我想做第二个补丁集,但是有冲突,我怎么能强制git接受所有的更改?谢谢!

CoD*_*anX 78

你可以告诉它总是喜欢你正在挑选的提交的更改:

git cherry-pick commitish --strategy-option theirs
Run Code Online (Sandbox Code Playgroud)

commitish可以是提交的SHA-1哈希,也可以是branch-name该分支的最新提交,branch-name~1用于之前的提交等.

如果您想反过来,请使用:

git cherry-pick commitish --strategy-option ours
Run Code Online (Sandbox Code Playgroud)

用于速记--strategy-optionIS -X(上部壳体X).

  • 如果您想接受传入的更改,那么您应该使用“他们的”密钥,否则应该使用“我们的”。你救了我的命! (4认同)

gee*_*lin 6

如果您已经处于冲突状态,只需执行

# add only conflicting files here
git checkout --theirs path/to/file
git add path/to/file
git cherry-pick --continue
Run Code Online (Sandbox Code Playgroud)


tal*_*mjr 5

git cherry-pick -X theirs <commit-hash-you-want-to-force-cherry-pick-from>

我通常的工作流程如下:

假设我在主服务器上并且刚刚提交。

  1. 我抓取该提交的提交哈希。
  2. 然后签出到我想要进行此提交的分支。
  3. 然后运行上面的命令,例如 git cherry-pick -X theirs 5cf3412