如何从指定的 git 分支压缩所有更改

Posted

技术标签:

【中文标题】如何从指定的 git 分支压缩所有更改【英文标题】:How to get zipped all changes from specified git branch 【发布时间】:2019-01-22 08:43:31 【问题描述】:

我想从 git 文件中的 git 指定分支获取所有更改的文件。

所以我将分支更改为 branch1,然后触发命令:

git archive -o branch1.zip HEAD $(git diff --name-only HEAD^)

但此命令仅压缩来自 branch1 的最后一次提交。 我想在 branch1.zip 文件中从 branch1 的所有提交中获得所有更改。

【问题讨论】:

所有提交的所有更改 以什么方式,以什么形式?您想在每次提交中存储所有差异或所有文件吗?为什么? 每次提交中的所有文件 【参考方案1】:

你在正确的轨道上!您只需将命令应用于分支中的每个提交:

for commit_id in `git rev-list branch1`; do
    git archive -o branch1-$commit_id.zip $commit_id -- $(git diff --name-only $commit_id~ $commit_id)
done

每次提交的更改文件都放在单独的 branch1-$commit_id.zip 中。

【讨论】:

以上是关于如何从指定的 git 分支压缩所有更改的主要内容,如果未能解决你的问题,请参考以下文章

使用 Git,我如何显示所有共享一个共同祖先的提交树?

在 git 中切换分支时,如何让 Emacs 恢复所有未更改的缓冲区?

如何运行 git log 以仅查看特定分支的更改?

如何撤消 git 上的丢弃更改?

如何在 Git 中更改分支库?

Git - 处理错误的分支 - 如何将更改复制到现有主题分支