将Git提交存储到文本文件中

4

如何将变更集(或提交)存储为文本文件,以便我可以将这些更改加载/应用回到我当前的活动分支中?

例如,我期望得到像这样的东西:

git commit --to-file ~/temp_commit_1.txt 

是否存在一种机制可以创建文本文件,其中包含可被 Git 理解的提交详情?如果没有,那么最接近实现这种行为的方式是什么?

2个回答

7

git format-patch

使用 git format-patch 命令。

git format-patch <master>
0001-commit-msg1.patch
0002-commit-msg2.patch

以上代码将会为每个提交创建一个单独的文件。

如果你想要创建一个文件,以更方便地作为附件或上传到其他地方,你可以使用--stdout选项并将输出重定向到一个文件中:

git format-patch master --stdout > output_file.patch

# EXample: The last 10 patches from head in a single patch file:
git format-patch -10 HEAD --stdout > 0001-last-10-commits.patch

应用补丁:

git am <patch file>

1

除了 @CodeWizard 说的内容之外,如果你谈论的是同一代码库中的分支,那么在文件中搞文本补丁就没有意义了,因为你可以使用 git cherry-pick 命令来完成这个操作:它会将一个分支上的一个或多个提交逐个作为文本补丁应用到当前检出的分支上。


顺便提一下,如果您需要在不直接连接的Git存储库之间传输一系列提交,则git bundle可能比使用补丁的命令更容易:前者生成一个自包含的“归档”,您可以从中获取、拉取、cherry-pick等,就像从常规的Git存储库中一样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接