在不更改分支的情况下查看不同Git分支中的文件

Sch*_*ems 577 git version-control branch git-branch

是否可以在git分支中打开文件而不检查该分支?怎么样?

基本上我希望能够在我的github pages分支中打开一个文件而不必一直切换分支.我不想修改它,只想查看它.

Sco*_*tus 811

这应该工作:

git show branch:file
Run Code Online (Sandbox Code Playgroud)

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

git show branch:file > exported_file
Run Code Online (Sandbox Code Playgroud)

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

更新2015-01-19:

现在你可以使用相对路径了git show a1b35:./file.txt.

  • 你也可以在vim中打开文件:`git show branch:file | vim -`(注意"|"管道,以及vim命令后面的尾随破折号:`vim -` (14认同)
  • @GregBurghardt对我有用的东西类似于`vim -c"set syntax = html"-` (3认同)
  • 老实说,我希望我能不止一次地回答这个问题. (2认同)
  • 这仅显示本地分支,它不显示服务器上的所有分支 (2认同)
  • @FullDecent,我可以很好地使用`origin / my_remote_branch`。还是您指的是实际的服务器版本?如果需要的话,只需要先进行“ git fetch”即可。 (2认同)

Ada*_*ruk 48

git show somebranch:path/to/your/file
Run Code Online (Sandbox Code Playgroud)

你也可以做多个文件并将它们连接起来:

git show branchA~10:fileA branchB^^:fileB
Run Code Online (Sandbox Code Playgroud)

您必须提供该文件的完整路径.

如果要将文件放在本地目录中(只恢复一个文件),可以签出:

git checkout somebranch^^^ -- path/to/file
Run Code Online (Sandbox Code Playgroud)


ing*_*ger 36

一种简单,新手友好的查看文件的方式: git gui browser <branch>可以让您浏览任何文件的内容.

它也在文件菜单中git gui.大多数其他更高级的GUI包装器(Qgit,Egit等)也提供浏览/打开文件.

  • 此命令结果“git: 'gui' 不是 git 命令。请参阅 'git --help'。我是新手;发生了什么事? (3认同)
  • 它实际上有效(令我惊讶),请参阅 https://git-scm.com/docs/git-gui - 我使用 git 版本 2.5.2.windows.1 (3认同)

leg*_*cia 19

如果您正在使用Emacs,则可以键入C-x v ~以查看当前正在编辑的文件的不同版本(标记,分支和散列都可以正常工作).


aku*_*uhn 7

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

[alias]
  cat = "!git show \"$1:$2\" #"
Run Code Online (Sandbox Code Playgroud)

然后试试这个

git cat BRANCHNAME FILEPATH
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢没有冒号的单独参数。为什么?这个选择反映了checkout命令的参数,我倾向于经常使用它,我发现它比命令的奇怪的冒号分隔参数更容易记住show