在git中是否有办法找到第一个(第二个,第三个)git提交,而这个提交并不是我自己的提交回到过去的时间?
答案 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