如何从Git存储库的另一个分支中获取一个文件/

时间:2013-08-28 13:21:42

标签: git atlassian-sourcetree

我正在使用Git。我想在一个分支中有一些代码。是否有一种简单的方法可以从不同的分支中获取一个文件的版本,或者是一种简单的方法使这个其他分支出现在我的文件系统的另一个目录中?

为了清楚起见,我想要检查其他版本,我不想完全取代我的版本。

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

2 个答案:

答案 0 :(得分:5)

我认为(从git checkout文档的最后一个条目开始),这将完成你所追求的目标(不确定SourceTree,抱歉):

git checkout mybranch -- mypath/myfile

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

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

当给出<paths>或--patch时,git checkout不会切换   分支机构。它从中更新工作树中的命名路径   索引文件或来自命名的<tree-ish>(通常是提交)。在这   case,-b和--track选项没有意义,给出了任何一个   它们会导致错误。 <tree-ish>参数可用于   指定一个特定的树(即提交,标记或树)来更新   更新工作树之前给定路径的索引。

答案 1 :(得分:3)

要快速查看单个文件,git show也是一个选项:

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

bar.foo到stdout的输出内容 - 必要时可以输出到编辑器:

git show otherbranch:./path/to/bar.foo | vim -