gpt4 book ai didi

git - 使用 `git show` 创建和应用跨越多个提交的补丁

转载 作者:IT王子 更新时间:2023-10-29 00:42:51 24 4
gpt4 key购买 nike

最近我一直在使用 git show <hash>创建差异供以后引用,因为它比 git diff <hash>~ <hash> 更容易输入它显示了提交信息(时间戳、用户、哈希、评论)。然后您可以使用 git apply <filename>应用补丁。

我发现 git show -3将显示最后三个提交以及相同的额外信息。然而,git apply会将其作为未暂存的更改全部压缩到工作目录中,并丢失所有提交信息。

git 中有什么东西可以应用所有这些信息吗?只传递一个标志比将补丁分成三个文件、分别应用它们并创建新提交要简单得多。

最佳答案

您可以使用 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 重新应用它们的提交。

关于git - 使用 `git show` 创建和应用跨越多个提交的补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12868131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com