Git show:显示文本选择的修订版中的斑点

hop*_*232 4 git git-show

我知道您可以使用gitrevisions(1) 中记录的:/<text>-syntax选择修订版,例如

git show :/"new change"
Run Code Online (Sandbox Code Playgroud)

将在提交消息中显示带有“新更改”的(最年轻的可到达的)提交。

我也经常在特定版本中使用该功能来处理git showblob,例如

git show myBranch:./coolFile.csv
Run Code Online (Sandbox Code Playgroud)

在修订状态下查看coolFile.csv(以我的相对路径)的全部内容。 myBranch

现在我的问题是:我可以使用:/<text>语法选择一个修订版,然后在该修订版中显示一个斑点吗?我努力了

git show (:/"new change"):./coolFile.csv
git show :/"new change":./coolFile.csv
Run Code Online (Sandbox Code Playgroud)

这引发了错误

致命:不明确的参数':/新更改:./coolFile.csv':未知修订版或路径不在工作树中。
使用“--”将路径与修订版分开,如下所示:
“git [<revision>...] -- [<file>...]”

所以我尝试了

git show :/"new change" -- ./coolFile.csv
Run Code Online (Sandbox Code Playgroud)

它什么也不打印,因为该语法只打印该文件中该修订版的更改。

Rom*_*eri 6

您可以使用命令替换

git show $(git rev-list -1 :/"new change"):coolFile.csv
Run Code Online (Sandbox Code Playgroud)

(这里git rev-list只是输出想要的修订哈希)


注意(感谢@phd):这是一个 bash 机制,它在 Windows cmd 中不起作用。