如何将文件的所有git版本保存到磁盘?

在git中有三个版本,具有三个唯一的提交哈希。file.py


那么,如何以编程方式将所有版本还原到特定文件中,例如:


0_<git_hash>_file.py

1_<git_hash>_file.py

2_<git_hash>_file.py

解决方案不一定是Python,而是目前正在研究Python包。git


千巷猫影
浏览 168回答 3
3回答

牛魔王的故事

n=0git log --pretty= --diff-filter=d --raw -- $file |&nbsp;while read m1 m2 h1 h2 rest; do&nbsp; &nbsp; &nbsp; &nbsp; eval git show $h2 > $((n++))_${h2}.$filedone或n=0git log --pretty=%h --diff-filter=d -- $file |while read; do&nbsp; &nbsp; &nbsp; &nbsp; eval git show $REPLY:$file > $((n++))_$REPLY.$filedone取决于是希望在生成的文件名中使用 Blob 的哈希值还是提交哈希值。

互换的青春

使用 git rev-list 获取提交列表,使用 git show 输出文件:i=0; git rev-list --abbrev-commit HEAD |&nbsp;while read sha; do&nbsp; &nbsp; git show $sha:./file.py > $((i++))_${sha}_file.pydone此版本可以避免在子shell中执行并且不影响父级的问题:i++i=0; git rev-list --abbrev-commit HEAD |while read sha; do&nbsp; &nbsp; git show $sha:./file.py > ${i}_${sha}_file.py&nbsp; &nbsp; ((i++))done

慕桂英546537

您可以使用 获取文件的指定版本,而无需签出相应的提交。例如:git showgit show git_hash:./file.py将自指定提交起的内容打印到标准输出。(据推测,我没有使用过的Git Python接口提供了类似的功能。在某些情况下,领先避免了路径解析问题(我不记得细节)。file.py./我已经写了一个Perl脚本,它为几个不同的版本控制系统(其中大部分我不再使用)做这样的事情:https://github.com/Keith-S-Thompson/get-versions(无保修)。根据要求,下面是在自己的存储库的副本上运行的示例:get-versions$ ls -ltotal 56-rw-r--r-- 1 kst kst 18092 Aug&nbsp; 9&nbsp; 2015 COPYING-rw-r--r-- 1 kst kst&nbsp; 6234 Apr 16&nbsp; 2018 README.md-rw-r--r-- 1 kst kst&nbsp; &nbsp;940 Apr 25&nbsp; 2018 TODO.md-rwxr-xr-x 1 kst kst 20977 Apr 16&nbsp; 2018 get-versions$ get-versions -pad 3 -last 3 get-versions&nbsp;$ ls -ltotal 128-rw-r--r-- 1 kst kst 18092 Aug&nbsp; 9&nbsp; 2015 COPYING-rw-r--r-- 1 kst kst&nbsp; 6234 Apr 16&nbsp; 2018 README.md-rw-r--r-- 1 kst kst&nbsp; &nbsp;940 Apr 25&nbsp; 2018 TODO.md-rwxr-xr-x 1 kst kst 20977 Apr 16&nbsp; 2018 get-versions-r--r--r-- 1 kst kst 20752 Mar&nbsp; 2 10:54 get-versions,012-r--r--r-- 1 kst kst 20766 Mar&nbsp; 2 10:54 get-versions,013-r--r--r-- 1 kst kst 20977 Mar&nbsp; 2 10:54 get-versions,014$&nbsp;get-versions -help打印一个完全过于冗长的用法消息。(添加手册页在我的 TODO 列表中,保留执行权限也是如此。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python