是否可以在git分支中打开文件而不签出该分支?怎样

本质上,我希望能够在github页面分支中打开一个文件,而无需一直切换分支。我不想修改它,只想查看它。


这应该是有效的:

git show branch:file

其中branch可以是任何ref(branch、tag、HEAD…),file是文件的完整路径。要导出它,可以使用

git show branch:file > exported_file

你还应该看看VonC对一些相关问题的回答:

如何从Git中的特定版本检索单个文件?如何从另一个分支仅获取一个文件

更新2015-01-19:

现在,您可以使用git show a1b35:的相对路径/文件.txt。


git show somebranch:path/to/your/file

您还可以创建多个文件并将它们连接起来:

git show branchA~10:fileA branchB^^:fileB

您不必提供文件的完整路径,可以接受相对路径,例如:

git show branchA~10:../src/hello.c

如果您想在本地目录中获取文件(仅恢复一个文件),可以签出:

git checkout somebranch^^^ -- path/to/file

一种简单、新手友好的查看文件的方法:gitgui浏览器<branch>,它允许您浏览任何文件的内容。

它也在gitgui的“文件”菜单中。大多数其他更高级的GUI包装器(Qgit、Egit等)也提供浏览/打开文件。


如果您正在使用Emacs,可以在其他窗口键入C-xv~或M-x-vc修订版,以查看当前正在编辑的文件的不同修订版(标记、分支和散列都有效)。


将以下内容添加到~/.gitconfig文件中

[alias]
  cat = "!git show \"$1:$2\" #"

然后试试这个

git cat BRANCHNAME FILEPATH

就我个人而言,我更喜欢不带冒号的单独参数。为什么?这个选择反映了checkout命令的参数,我倾向于经常使用它,因此我发现它比show命令的bizarro冒号分隔的参数更容易记住。