查找被作者还原的提交
Finding commits that were reverted by an author
该主题主要涵盖它,但为了避免任何歧义 - 我有兴趣审计特定开发人员恢复提交的频率(谁进行恢复并不重要)。我似乎找不到任何搜索(我的 google-fu 在这里让我失望)。
例如,考虑这个提交历史:
* 76b203f "gddc" 37 seconds ago (HEAD -> master)
| Revert "file 1 added"
* 6da3eea "gddc" 52 seconds ago
| file2 added
* c940460 "gddc" 61 seconds ago
file 1 added
乍一看很容易看出我已经在此处还原了提交 1,但我想要一种编程方式来针对任何作者的任何存储库审核它。
请务必注意,git
不会记录任何类型的 "this commit reverts that commit" 元数据。虽然 git
将 建议 一个默认的提交消息,即 "This reverts commit ...",但没有什么可以阻止某人更改该消息。只要您确信人们正在维护默认消息,您就会发现还原提交正在执行类似...
git log --grep reverts
这会给你这样的输出:
commit 563a99c7bd36998afb7a1957eaf29b0966402a77 (HEAD -> master)
Author: Example User <user@example.com>
Date: Mon Jan 15 14:35:36 2018 -0500
Revert "first"
This reverts commit 131e6f65c9a78c5476921b6c2f8632661a2d71b6.
您需要生成还原的提交 ID 列表。您可以将该输出通过管道传输到 awk
,如下所示:
git log --grep reverts | awk '/This reverts commit/ {print }' | cut -f1 -d.
这会为您提供提交 ID 列表:
131e6f65c9a78c5476921b6c2f8632661a2d71b6
您可以将该列表输入 xargs
以查找有关原始提交的信息,例如:
git log --grep reverts |
awk '/This reverts commit/ {print }' | cut -f1 -d. |
xargs -iCID git show --quiet --format='%ae' CID
上面使用 %ae
从每个还原的提交中提取作者电子邮件,例如:
new_dev@example.com
您可以将参数修改为 --format
以输出有关原始提交的其他信息。
这是否为您指明了正确的方向?
该主题主要涵盖它,但为了避免任何歧义 - 我有兴趣审计特定开发人员恢复提交的频率(谁进行恢复并不重要)。我似乎找不到任何搜索(我的 google-fu 在这里让我失望)。
例如,考虑这个提交历史:
* 76b203f "gddc" 37 seconds ago (HEAD -> master)
| Revert "file 1 added"
* 6da3eea "gddc" 52 seconds ago
| file2 added
* c940460 "gddc" 61 seconds ago
file 1 added
乍一看很容易看出我已经在此处还原了提交 1,但我想要一种编程方式来针对任何作者的任何存储库审核它。
请务必注意,git
不会记录任何类型的 "this commit reverts that commit" 元数据。虽然 git
将 建议 一个默认的提交消息,即 "This reverts commit ...",但没有什么可以阻止某人更改该消息。只要您确信人们正在维护默认消息,您就会发现还原提交正在执行类似...
git log --grep reverts
这会给你这样的输出:
commit 563a99c7bd36998afb7a1957eaf29b0966402a77 (HEAD -> master)
Author: Example User <user@example.com>
Date: Mon Jan 15 14:35:36 2018 -0500
Revert "first"
This reverts commit 131e6f65c9a78c5476921b6c2f8632661a2d71b6.
您需要生成还原的提交 ID 列表。您可以将该输出通过管道传输到 awk
,如下所示:
git log --grep reverts | awk '/This reverts commit/ {print }' | cut -f1 -d.
这会为您提供提交 ID 列表:
131e6f65c9a78c5476921b6c2f8632661a2d71b6
您可以将该列表输入 xargs
以查找有关原始提交的信息,例如:
git log --grep reverts |
awk '/This reverts commit/ {print }' | cut -f1 -d. |
xargs -iCID git show --quiet --format='%ae' CID
上面使用 %ae
从每个还原的提交中提取作者电子邮件,例如:
new_dev@example.com
您可以将参数修改为 --format
以输出有关原始提交的其他信息。
这是否为您指明了正确的方向?