有没有办法从特定commitID上的另一个分支签出文件?

时间:2017-09-13 16:05:37

标签: git

我尝试了以下内容:

git checkout master 75d533d -- PagedList.js
fatal: only one reference expected, 2 given.
git checkout master -- PagedList.js 75d533d
error: pathspec '75d533d' did not match any file(s) known to git.
git checkout origin/master 75d533d -- PagedList.js
fatal: only one reference expected, 2 given.

无论如何,我的目标是使用版本75d533d从master分支机构检出PagedList.js

3 个答案:

答案 0 :(得分:1)

正如已经说过的那样:

  

git checkout 75d533d - PagedList.js

这也有效:

  

git checkout 75d533d PagedList.js

确保“PagedList.js”具有正确的文件路径,否则您将获得

  

错误:pathspec'PagedList.js'与git已知的任何文件都不匹配

答案 1 :(得分:1)

分支只是提交的指针。在很好的命令行后面,对于许多操作,分支是它指向的提交的同义词。

  

无论如何,我的目标是使用版本75d533d从master分支机构检出PagedList.js。

master分支,作为任何分支,可以从一个提交移动到另一个提交,从历史的一个分支移动到另一个分支。 “版本75d533d的主分支”可能并不总是正确的。但这是一个不同的故事。

你想要的是检查文件PagedList.js,因为它在提交75d533d上(无论该提交是否属于master的当前历史记录)。此处不涉及master分支。

如果我明白我的观点,你可能已经明白你的错误在哪里。从命令中删除对master的任何引用,你就可以了:

git checkout 75d533d -- PagedList.js

在命令提示符下阅读有关git checkout的更多信息或输入git help checkout

答案 2 :(得分:0)

只需尝试git checkout 75d533d -- PagedList.js

这应该是“足够”的参考。