考虑到我的git日志中有这个:
提交847a363f6676bf5d07c42d6ebec834fea1c9a363
-------------------更正:
让我来纠正。
我使用git作为备份和版本控制工具。我希望在我的提交历史中获得以前的版本,而不会影响我当前工作目录中的任何内容。
我只想在一个单独的目录中获得给定提交号码中所有文件的副本。
答案 0 :(得分:2)
我想你想要
git read-tree -u --prefix=path/to/dest/ 847a363f6676bf5d07c42d6ebec834fea1c9a363
编辑:啊,不,给定
在不影响我当前工作目录的任何内容的情况下。我只想在一个单独的目录
中给出一个给定提交号中的所有文件的副本
更好的是
mkdir -p /path/to/dest
GIT_INDEX_FILE=.git/junk GIT_WORK_TREE=/path/to/dest \
git read-tree -u 847a363f6676bf5d07c42d6ebec834fea1c9a363
rm .git/junk
另一种可能性:
mkdir -p /path/to/it
git archive 847a363f6676bf5d07c42d6ebec834fea1c9a363 | tar Cx /path/to/it
如果你想在出路上做任何过滤,可能会更好,请参阅export-ignore
和export-subst
属性。
答案 1 :(得分:0)
你想要的是git worktree。
使用git worktree add
签出另一个目录中的提交。
这很容易使用,但我让你阅读文档,知道如何正确地做到这一点......