如何在SourceTree中的两个Git提交之间导出所有已更改的文件?

Lud*_*wig 12 git export atlassian-sourcetree

在TortoiseGit和TortoiseSVN中,可以将两个修订版之间的所有已更改文件(包括目录结构)导出到外部文件夹.

有没有办法在Atlassian SourceTree(Windows)中这样做?

Mar*_*nev 12

试试这个:

git archive --output=test_zip.zip HEAD $(git diff --diff-filter=ACMRTUXB --name-only hash1 hash2)
Run Code Online (Sandbox Code Playgroud)

只需将示例中的散列1和散列2替换为所需的提交散列,并将zip文件命名为您希望对其进行压缩的位置.

这个对我有用


Cod*_*ard 3

从源树内部:

  • 选择第一个提交开始
  • 按住 Shift 键
  • 单击要导出的最后一次提交
  • 鼠标右键单击:并选择创建补丁
  • 设置要保存的文件名,补丁就准备好了

在此输入图像描述


使用 CLI:

打开终端(sourcetree 图标栏上的图标)

然后输入:

git diff <sha-1>..HEAD > my_all_commits.diff
Run Code Online (Sandbox Code Playgroud)

它将生成一个 diff 文件,其中包含给定范围内的所有更改。


如何每次提交生成单个补丁

git format-patch SHA-1..SHA-1
此提交将为每次提交创建一组补丁,其中包含提交中的所有更改。然后,您可以选择全部使用它们,或仅选择要应用于第二个存储库的那些。

祝你好运。

  • 谢谢,但这是一个 .diff,而不是导出,每个更改的文件物理上存在于与当前工作目录相同的目录结构中。 (6认同)