如何以新名称查看以前版本的目录?
(我的repo中有一个目录foo
。我想在当前工作树中创建一个目录foo_old
,其内容是HEAD~2:foo
的目录。我需要两个同时版本,为了确保它们给出相同的结果,测试这需要相当多的代码并要求同时提供两个结果(结果不是简单的整数,比如说),所以我不能简单地检查{ {1}}暂时做我想做的事情)
This question询问如何以新名称检出文件的先前版本,但接受的答案不能推广到目录。
答案 0 :(得分:1)
你可以做得很简单:
git co -b new-branch-name # create and go to new branch, just to be sure
git slg # get the commit hash you need for next step
git co [commit-hash] # now you get the old folder by the state you need it
然后将您需要的目录复制到桌面。 (你现在在HEAD分离)
git co new-branch-name # cause you are in detached head go back to new-branch
在桌面上将目录重命名为foo_old
并将其粘贴到项目中所需的位置。
答案 1 :(得分:0)
我刚刚写了一个python script来从特定版本的Git历史记录中复制文件或子目录。
该脚本可以在控制台上显示内容或保存在某个目录下。它保留了文件执行权限和行尾。
脚本中的主要逻辑是:
git ls-tree
获取特定修订版目录中文件的列表git cat-file
修订时的文件内容