我曾在一个月前解决了一个错误,但似乎仍有一些问题.但我甚至不记得到目前为止我做了哪些改变来解决这个问题.那个时候我注意到了bug的名字.因此,要查找其提交ID,只有一种方法可以通过git log和搜索commit消息.我试过这种方式:
git log --author=githubUser | grep "65243"
Run Code Online (Sandbox Code Playgroud)
但它只是回复了我的信息:
merge UI Developers Work #65243
Run Code Online (Sandbox Code Playgroud)
有没有办法通过做到它来获得它的提交ID grep.
git日志中的消息将采用以下格式:
commit <commit_id>
Author: githubUser <githubUser@companyname.com>
Date: Thu Jul X 15:55:23 2014 +0530
Bug fixed #65243
Run Code Online (Sandbox Code Playgroud)
有两种方法可以根据您的需要进行操作.
第一个也是最短的是使用gitrevisions语法来指定在其提交消息中包含给定字符串的"第一个"修订:
git rev-parse :/65243
Run Code Online (Sandbox Code Playgroud)
和:
git show :/65243
Run Code Online (Sandbox Code Playgroud)
引用上面链接的文档:
冒号后跟一个斜杠,后跟一个文本,命名一个提交,其提交消息与指定的正则表达式匹配.此名称返回可从任何ref访问的最年轻的匹配提交.如果提交消息以a开头!你必须重复一遍; 特殊序列:/!,后跟除了!之外的东西,现在保留.正则表达式可以匹配提交消息的任何部分.要匹配以字符串开头的消息,可以使用例如:/ ^ foo.
这种表达形式命名一个特定的提交(即,它与原始SHA-1 ID具有相同的用法),这就是为什么git rev-parse会向您显示版本ID git show并将向您显示提交本身.
如果选择了错误的修订版,请使用git log --grep=65243将其输出限制为在其提交消息中包含指定正则表达式的提交.不同之处在于,它git log只会显示相同的修订版本(因此您可以添加其他限制器),并显示所有匹配的修订版本.也就是说,你可以做以下事情:
git log --since=... --before=... --author=... --grep=65243 branch~30..branch
Run Code Online (Sandbox Code Playgroud)
查看两个时间戳之间可以访问branch但不能访问的提交branch~30,具有给定的作者,并包含65243.(如果需要,可以在命令中添加--oneline或添加--format=pretty:...字符串git log等)
| 归档时间: |
|
| 查看次数: |
2139 次 |
| 最近记录: |