Bas*_*asj 4 git export git-archive
如何将所有提交导出到 ZIP 文件(包含所有文件,而不仅仅是 patch/diff):
myproject-commit1-67d91ab.zip
myproject-commit2-9283acd.zip
myproject-commit3-c57daa6.zip
...
Run Code Online (Sandbox Code Playgroud)
或进入目录:
myproject-commit1-67d91ab/
myproject-commit2-9283acd/
myproject-commit3-c57daa6/
Run Code Online (Sandbox Code Playgroud)
?
我正在考虑这样的命令:
git archive --format zip --output myproject-commit3.zip c57daa6
Run Code Online (Sandbox Code Playgroud)
来自如何使用 git-archive 导出特定提交?,但是如何获得所有提交?
笔记:
目标是导出每次git提交的所有文件,这样即使我的机器上没有这些文件,我也可以访问它们
答案来自如何通过运动鞋网(外部文件)将 Git 更改集从一个存储库导出到另一个存储库?创建一个.bundle文件,但如果没有 似乎无法访问它git,所以这不是我要找的
这几乎有效:
for ((i = 0;; ++i)); do git checkout master~$i || break; tar czf ../myproject-commit$i.tgz .; done
Run Code Online (Sandbox Code Playgroud)
但它还会归档当前目录中未
编辑到存储库的所有文件git add...如何避免此问题?
你不能,除非通过你已经在考虑的方法。
\n\n具体来说,要将每个提交转换为 zip 存档(每个提交一个单独的存档),只需迭代每个提交,将每个提交转换为 zip 存档即可。
\n\n您的迭代方法只需要遍历所有可能的提交,而不是仅遍历分支的所有第一父级master,并且您必须git archive在每个此类提交上使用。因此:
git rev-list --all |\n while read hash; do git archive ...options... $hash\ndone\nRun Code Online (Sandbox Code Playgroud)\n\n该命令git rev-list --all告诉 Git 按某种顺序打印出每个可到达的提交哈希 ID。要更改顺序,请使用git rev-list和均可用的各种排序选项git log(例如,--author-date-order或--topo-order)。
如果您不想要每个提交\xe2\x80\x94,如果您只想要 master\xe2\x80\x94 的第一父母,您仍然可以这样做git rev-list:
git rev-list --first-parent master | ...\nRun Code Online (Sandbox Code Playgroud)\n\n在这里,由于 Git 仅从任何提交master标识开始遍历第一父级,因此哈希 ID 将以 Git 认为的正向顺序输出,即向后穿过分支的第一父级:
...--o--o--o--o--o--o------o <-- master\n \\ \\ /\n \\ X--X--...X <-- somebranch\n \\ /\n X--X----X--X <-- anotherbranch\nRun Code Online (Sandbox Code Playgroud)\n\n任何X提交都不会出现,因为它们不在第一父系上。(如果没有--first-parent,因为 上的所有提交somebranch以及除最后一个之外的所有提交anotherbranch也在上,因此master您将获得所有X提交。)
[Basj 添加了以下内容,这似乎是 bash 特定的,因为$((i=i+1)):] 编辑:这是一个随时可用的命令,可以按照问题中的描述执行此操作:
git rev-list --all --reverse | while read hash; do git archive --format zip --output ../myproject-commit$((i=i+1))-$hash.zip $hash; done\nRun Code Online (Sandbox Code Playgroud)\n\n[torek 觉得需要添加:-) :请注意,上面按顺序枚举提交,即使这不是可逆映射。]
\n| 归档时间: |
|
| 查看次数: |
2769 次 |
| 最近记录: |