red*_*bmk 13 git diff patch git-show
最近我一直在使用git show <hash>创建差异供以后参考,因为它比键入更容易,git diff <hash>~ <hash>并且它显示了提交信息(时间戳,用户,哈希,注释).然后,您可以使用git apply <filename>该补丁.
我发现git show -3将显示最后三次提交以及相同的额外信息.但是,git apply将它作为非分段更改压缩到工作目录中,并丢失所有提交信息.
git中是否有适用所有信息的内容?传递一个标志而不是将补丁分成三个文件,分别应用它们,并创建新的提交,会简单得多.
Lil*_*ard 10
您可以使用它git format-patch来生成表示提交的MIME电子邮件,包括其元数据(消息,作者等).然后,您可以重新应用这些git am.
因此,git format-patch HEAD~3将为最后3次提交生成3个补丁,然后您可以将这些补丁全部导入git am.如果您想要更简单,git format-patch --stdout HEAD~3将在stdout上发送MIME消息,这样您就可以将它们管道传送到您想要的位置,而不是处理3个单独的文件.
当然,如果你试图保存提交以便稍后引用,为什么不只是标记它们呢?然后,您可以使用它们重新应用它们的提交git cherry-pick.
在 Linux 中,您可以通过管道连接您的delta-generator ---git-show或者git-diff,例如 --- 使用git-apply命令。
(始终使用该-3选项启用 3 路合并也可能更安全)
> git show <sha1> [<path>] | git apply -3
> git diff <sha1-a> <sha1-b> [<path>] | git apply -3
Run Code Online (Sandbox Code Playgroud)
例子:
> git show abcdef dir/file.c | git apply -3
Run Code Online (Sandbox Code Playgroud)
> git diff abcdef 123456 foo.h | git apply -3
另见:https : //stackoverflow.com/a/12320940/1329340
| 归档时间: |
|
| 查看次数: |
13789 次 |
| 最近记录: |