gpt4 book ai didi

git - 将所有 Git 分支导出到每个分支的单独 zip 文件中

转载 作者:行者123 更新时间:2023-12-02 21:25:55 24 4
gpt4 key购买 nike

我正在寻找一种导出 Git 存储库的方法,以便为每个分支单独获取一个 zip 或目录。

这类似于 Do a "git export" (like "svn export")? ,但不是 current 分支的 zip,我希望得到 every 分支的 zip。

是否有可以执行此操作的 Git 或 Bash 命令?

最佳答案

使用带有分支参数的 git archive

git archive 可以接受一个分支名称作为参数导出,所以你只需要编写一个脚本来循环遍历分支名称并将它们传递给 git archive .例如,这将适用于 Windows Git Bash:

git for-each-ref --format='%(refname:short)' refs/heads | \
while read branch; do
git archive --format zip --output <outputDirectory>/${branch}.zip $branch
done

我从 official Linux Kernel documentation for git for-each-ref 中的第二个nd 示例修改了它。

分割

$ git for-each-ref --format='%(refname:short)' refs/heads
foo
master

git for-each-ref 将在 refs/heads 下列出每个本地分支,仅使用带有 refname:short 的分支名称格式。

该输出通过管道传输到 Bash while 循环中,然后用分支名称替换 git archive 参数:

while read branch; do
git archive --format zip --output <outputDirectory>/${branch}.zip $branch
done

For循环解决方案

这是一个受 toydarian's (non-working) solution 启发的 Bash for 循环解决方案:

for branch in $(git for-each-ref --format='%(refname:short)' refs/heads); do
git archive --format zip --output <outputDirectory>/${branch}.zip $branch
done

文档

关于git - 将所有 Git 分支导出到每个分支的单独 zip 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24370850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com