lov*_*ove 3 git git-cherry-pick
我知道git cherry-pick和git apply终端系统。但是今天我遇到了一些问题。我通过使用两个修订版的差异来应用一个补丁。我使用以下命令:
git diff HEAD> diff.patch
git apply diff.patch
我的补丁申请失败了一个文件。
然后,我只是想尝试挑选 commit-id2。它被成功挑选。
可能是什么原因?任何人都想对同一事物有所了解。
两种可能性:
中的更改diff.patch
可能与中的更改不同commit-id2
,这就是为什么两者的行为有所不同的原因。
git diff HEAD
显示HEAD
与当前工作目录之间的差异。 git cherry-pick commit-id2
应用diff commit-id2
和它的父级之间的差异(并使用中的元数据提交结果commit-id2
)。之间的差异commit-id2
及其母公司,而不是(通常)相同,之间的差异HEAD
和当前工作目录。
您没有告诉过您git apply
要退回到三路合并cherry-pick
。尝试将--3way
(或-3
)选项添加到中git apply
。
请尝试以下操作:
git diff commit-id2^! >diff.patch
git apply -3 diff.patch
Run Code Online (Sandbox Code Playgroud)
上面的行为应该像git cherry-pick -n commit-id2
。(有关语法git help revisions
的说明,请参见^!
。)
归档时间: |
|
查看次数: |
2931 次 |
最近记录: |