2012-06-12 65 views
1

对于我正在处理的项目,我需要保存特定版本的git存储库的所有文件。我已经浏览了大量有关git checkout的信息,但是我无法弄清楚对目录中的文件做了什么,更不用说保存该特定提交的版本了。有没有人知道一种方式来获取特定提交的git存储库的文件?谢谢。保存旧的git存储库版本

回答

2

Do a "git export" (like "svn export")?

git checkout [commit sha] 
git archive --format zip --output /full/path/to/zipfile.zip master 

不过,我不知道,为什么。通常人们会使用vcs,因为它可以保存每个状态,所以当你需要时,为什么不标记它并检查出来?

+0

谢谢!这正是我需要的。 – SSEMember

+0

有没有办法让文件没有发送到.zip?我需要将它们解开,如果我要将它们全部解开,我会永远在这里。 – SSEMember

+1

你不能解压整个档案吗? :?必须说:听起来好奇。但是:在“checkout”之后,您将所有文件放在工作区中。如果你想从工作区中分离结账,你可以使用我提供的链接中的第一个例子('git archive master | tar -x -C/somewhere/else'),或者仅仅创建一个本地克隆,结帐并删除git ('git clone/local/path/to/repo/another/path; cd/another/path; git checkout [SHA]; rm -Rf .git;') – KingCrunch

0

我认为tag会有所帮助。每次您想保存所有当前文件时,请输入类似git tag -a v1.4 -m 'version 1.4'的内容。因此,一旦您想要恢复这些文件,首先提交或隐藏更改,然后键入git checkout v1.4,文件将回滚到您标记的时间。查看这些链接了解更多信息:how to taghow to get them back

相关问题