我对Github相当陌生,遇到了一个业余的问题。
我被要求做一个代码审查,并提供了一个提交哈希,但是我试着在Git中寻找,如果我可以使用提交哈希进行搜索,但找不到任何东西。
是否有一种方法,我可以通过使用提交哈希找到更改的代码?
我对Github相当陌生,遇到了一个业余的问题。
我被要求做一个代码审查,并提供了一个提交哈希,但是我试着在Git中寻找,如果我可以使用提交哈希进行搜索,但找不到任何东西。
是否有一种方法,我可以通过使用提交哈希找到更改的代码?
当前回答
查看单次提交: https://github.com/ <用户名> / <项目> /提交/ <散列>
查看日志: 项目https://github.com/ <用户> / < > /提交/ <散列>
查看完整回购: 项目https://github.com/ <用户> / < > /树/ <散列>
<hash>可以是任何长度,只要它是唯一的。
其他回答
格式为https://github.com/<owner>/<project>/commit/<hash>的URL将向您显示在该提交中引入的更改。例如,这是我最近对我在GitHub上的一个项目所做的错误修复:
https://github.com/jerith666/git-graph/commit/35e32b6a00dec02ae7d7c45c6b7106779a124685
你也可以将哈希值缩短为任何唯一的前缀,如下所示:
https://github.com/jerith666/git-graph/commit/35e32b
我知道你刚刚问了GitHub,但为了完整性:如果你已经签出了存储库,从命令行,你可以用这些命令中的任何一个实现基本相同的事情(唯一的前缀也可以在这里工作):
git show 35e32b6a00dec02ae7d7c45c6b7106779a124685
git log -p -1 35e32b6a00dec02ae7d7c45c6b7106779a124685
注意:如果你把提交散列缩短得太短,命令行会给你一个有用的消歧消息,但GitHub只会返回404。
查看单次提交: https://github.com/ <用户名> / <项目> /提交/ <散列>
查看日志: 项目https://github.com/ <用户> / < > /提交/ <散列>
查看完整回购: 项目https://github.com/ <用户> / < > /树/ <散列>
<hash>可以是任何长度,只要它是唯一的。
GitHub最近添加了搜索提交的功能。
要搜索散列,只需在搜索框中输入至少前7个字符。然后在结果页面上,单击“提交”选项卡查看匹配的提交(但只在默认分支上,通常是master),或者单击“问题”选项卡查看包含提交的拉请求。
为了更显式,您可以在搜索中添加hash:前缀,但这并不是真正必要的。
还有一个REST API(在撰写本文时它仍处于预览状态)。
使用GitHub CLI gh v2.22.0(2023年1月),您可以从本地克隆的GitHub存储库中搜索:
参见gh search commit:
例子:
# search commits matching hash "8dd03144ffdc6c0d486d6b705f9c7fba871ee7c3"
$ gh search commits --hash=8dd03144ffdc6c0d486d6b705f9c7fba871ee7c3
但也:
# search commits matching set of keywords "readme" and "typo"
$ gh search commits readme typo
# search commits matching phrase "bug fix"
$ gh search commits "bug fix"
# search commits committed by user "monalisa"
$ gh search commits --committer=monalisa