如何从Git仓库的另一个分支中获取一个文件?

4

我正在使用Git。我有一些代码在一个分支中,我想要获取其中的某个文件版本。是否有一种简单的方法可以从不同的分支中获取一个文件的特定版本或者将该分支映射到我的文件系统中的另一个目录中呢?

只是为了明确,我想要获取这个其他版本以便检查,而不是完全用它替换我现有的版本。

我正在使用SourceTree,但我也愿意接受基于命令行的答案。


你在SourceTree中解决了吗? - Ladislav M
2个回答

5
我认为(从git checkout文档中的最后一个条目),这将实现您想要的操作(不确定是否适用于SourceTree,抱歉):
git checkout mybranch -- mypath/myfile

来源:https://www.kernel.org/pub/software/scm/git/docs/git-checkout.html

git checkout命令用于切换分支或还原工作树文件。如果提供了分支名称,则将当前分支更改为指定的分支。如果提供了文件名称,则将该文件从存储库中检出并覆盖工作树中的相应文件。

git checkout [-p|--patch] [<tree-ish>] [--] <pathspec>…

当指定或--patch参数时,git checkout命令不会切换分支,而是从索引文件或指定的(通常是提交)更新工作树中的指定路径。在这种情况下,-b和--track选项无意义,并且任何一个都会导致错误。可以使用参数来指定要更新给定路径的索引之前要使用的特定tree-ish(即提交、标签或树)。

3

如果想快速查看单个文件,也可以使用git show命令:

git show otherbranch:./path/to/bar.foo 

这将 bar.foo 的输出内容显示在标准输出中,如果需要可以将其导入到编辑器中:
git show otherbranch:./path/to/bar.foo | vim -

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接