我在一个月前解决了一个错误,但似乎仍有一些问题。
但我甚至不记得到目前为止我做了哪些改变来解决这个问题。我注意到了这个bug的名字
那时。因此,要查找其提交ID,只有一种方法可以通过git log
并搜索commit
条消息。
我试过这种方式:
git log --author=githubUser | grep "65243"
但它只是回复了我的信息:
merge UI Developers Work #65243
有没有办法通过grep
来获取其提交ID。
git日志中的消息将采用以下格式:
commit <commit_id>
Author: githubUser <githubUser@companyname.com>
Date: Thu Jul X 15:55:23 2014 +0530
Bug fixed #65243
答案 0 :(得分:5)
根据您的需要,有两种方法可以完成您想要的任务。
第一个也是最短的是使用gitrevisions语法来指定&#34;第一个&#34;在其提交消息中包含给定字符串的修订版:
git rev-parse :/65243
和
git show :/65243
从上面链接的文档中引用:
冒号后跟一个斜杠,后跟一个文本,命名一个提交,其提交消息与指定的正则表达式匹配。此名称返回可从任何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
查看可从branch
但无法从branch~30
访问的提交,发生在两个时间戳之间,具有给定作者,并包含65243
。 (如果需要,可以将--oneline
或--format=pretty:...
字符串添加到git log
命令中。)
答案 1 :(得分:3)
运行git log以按日期范围获取所需的所有提交ID,因此如果您知道更改的月份,则可以缩小搜索范围:)
git log --before={2014-02-01} --after={2014-01-01} --author="your name"
即。在上面的例子中,我抓住了2014年1月所做的所有更改