在git中,我正在尝试将特定存储库的版本签出到临时文件夹内的版本文件夹中,但是当我这样做时
git checkout master~X C:/file/path/temp/versionX
我收到错误
error: pathspec 'temp/versionX' did not match any file(s) known to git.
导致问题的原因是什么?如何解决?
答案 0 :(得分:4)
git checkout
仅在“工作树”内运行。要做你想做的事,改变Git对工作树的看法。有几种不同的方法可以做到这一点:
选项1:从Git存储库运行
cd /path/to/repository
# git automatically locates the .git directory as usual
git --work-tree=C:/file/path/temp/versionX checkout master~X
选项2:从目标目录
运行cd C:/file/path/temp/versionX
# if --git-dir is specified, Git assumes the working tree is .
git --git-dir=/path/to/repository/.git checkout master~X
选项3:从其他目录运行
cd /some/arbitrary/path
# need to specify both the path to .git and the destination directory
git --git-dir=/path/to/repository/.git \
--work-tree=C:/file/path/temp/versionX \
checkout master~X
答案 1 :(得分:0)
Checkout不能像这样使用。你想要的是git-archive(1)。例如:
ancestor=10
git archive --prefix="version${ancestor}" master~$ancestor |
tar xvf - -C "C:/file/path/temp"
这会将命名提交导出到标准输出上的tarball,然后tar将在适当的位置解压缩。起初看起来有点麻烦,但它会在你身上发展。
答案 2 :(得分:0)
你可以试试这个:
mkdir /file/path/temp/versionX
cd /file/path/temp/versionX
git --git-dir=/path/to/repo/.git --work-path=. checkout master~X