如何将更改集(或提交)存储为文本文件,以便我可以将这些更改加载/应用回当前活动分支?
即我期待这样的事情
git commit --to-file ~/temp_commit_1.txt
将创建一个文本文件,其中包含git可以理解的提交详细信息。这种机制是否存在或者最接近实现这种行为的方式是什么?
答案 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存储库中获取。