是否可以在不签出该分支的情况下在 git 分支中打开文件?如何?
本质上,我希望能够在我的 github pages 分支中打开一个文件,而无需一直切换分支。我不想修改它,只想查看它。
git show
指定文件的完整路径的事实:stackoverflow.com/questions/610208/… 和 stackoverflow.com/questions/2364147/…
git show a1b35:./file.txt
来使用相对路径。
git diff <other_branch> <path>
这应该有效:
git show branch:file
其中 branch 可以是任何 ref(branch、tag、HEAD、...),而 file 是文件的完整路径。要导出它,您可以使用
git show branch:file > exported_file
您还应该查看 VonC 对一些相关问题的回答:
如何从 Git 中的特定修订中检索单个文件?
如何从另一个分支只获取一个文件
更新 2015-01-19:
现在您可以将相对路径与 git show a1b35:./file.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
/
而不是 \
- 即使 cmd 的完成会尝试告诉您相反的情况。
查看文件的一种简单、新手友好的方式:git gui browser <branch>
可让您浏览任何文件的内容。
它也在 git gui
的文件菜单中。大多数其他更高级的 GUI 包装器(Qgit、Egit 等)也提供浏览/打开文件。
如果您使用 Emacs,您可以输入 C-x v ~
或 M-x vc-revision-other-window
来查看您当前正在编辑的文件的不同版本(标签、分支和散列都有效)。
将以下内容添加到您的 ~/.gitconfig
文件中
[alias]
cat = "!git show \"$1:$2\" #"
然后试试这个
git cat BRANCHNAME FILEPATH
我个人更喜欢没有冒号的单独参数。为什么?这个选择反映了我经常使用的 checkout
命令的参数,因此我发现它比 show
命令的 bizarro 冒号分隔的参数更容易记住。
.git/config
后立即使用 git 别名,例如保存配置并尝试 git cat ma[tab-tab] docke[tab-tab]
。谢谢,@akuhn
不定期副业成功案例分享
git show branch:file | vim -
(注意“|”管道,以及 vim 命令后的尾随破折号:vim -
vim -c "set syntax=html" -
origin/my_remote_branch
。还是您的意思是实际的服务器版本?如果你想这样做,你只需要先git fetch
。