存储git提交到文本文件

时间:2017-01-15 22:25:57

标签: git

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

即我期待这样的事情

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

将创建一个文本文件,其中包含git可以理解的提交详细信息。这种机制是否存在或者最接近实现这种行为的方式是什么?

2 个答案:

答案 0 :(得分:4)

git format-patch

您应该使用git format-patch

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

上面的代码将在自己的文件中创建每个提交。

如果您想创建仅一个文件,以便更轻松地用作附件或在其他位置上传,您可以使用--stdout选项并将输出重定向到文件:< / p>

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 :(得分:1)

除了@CodeWizard所说的内容之外,如果你在相同的存储库中讨论分支,那么在使用文件中的文本补丁时没有任何意义,因为你可以使用执行此操作的git cherry-pick命令:在分支上进行提交或一系列提交,并将它们作为文本补丁一个接一个地应用于当前检出的分支。

另外,如果您需要在不直接连接的Git存储库之间传输一系列提交,git bundle可能比使用补丁的命令更容易:前者生成一个独立的&#34;存档& #34;从中可以获取,拉樱桃挑选等等 - 就像从常规的Git存储库中获取。