如何找到第一个git提交,而不是我的提交回到过去?

时间:2014-05-15 16:55:19

标签: git

在git中是否有办法找到第一个(第二个,第三个)git提交,而这个提交并不是我自己的提交回到过去的时间?

3 个答案:

答案 0 :(得分:1)

以下命令可能有用:

git shortlog

git log --committer '^(?!YOURAUTHORNAME).*$' --perl-regexp

或类似地,

git log --author '^(?!YOURAUTHORNAME).*$' --perl-regexp

log 的这两种变体使用正则表达式来表示"而不是我的用户。"

您可以找到有关这些命令here的信息。显然,将YOURAUTHORNAME替换为您自己用户名的足够字符,以使其唯一。如果您绝对只想要单个最近提交,请在 log 命令中包含 - max-count = 1 参数。

正如其他答案所示,有很多方法可以实现这一点,包括使用其他Linux工具,如 grep sed

答案 1 :(得分:0)

好问题,不太确定Git是否可以自己做到这一点,但是好老“grep”的一点帮助应该可以解决问题。试试这个:

git log | grep "Author:" | grep -v "Author: JohnCrawford" -m 1

显然把它自己的名字放在里面而不是我的名字; - )

答案 2 :(得分:0)

git log | grep -P -B 1 '^Author:.*<(?!${YOUR_EMAIL})' | head -n 1

将字符串${YOUR_EMAIL}替换为它应该是什么,并且您将获得与您的电子邮件地址不匹配的第一次提交的提交哈希。

不属于您的前3个提交:

git log | grep -P -B 1 '^Author:.*<(?!${YOUR_EMAIL})' | grep ^commit | head -n 3