【问题标题】:Find which developers' code was changed by a commit?查找提交更改了哪些开发人员的代码?
【发布时间】:2017-12-18 14:27:33
【问题描述】:

有没有办法使用 git 找出特定提交更改了哪些开发人员的代码?

这个过程看起来像: 获取一个提交 SHA,在父提交 git diff SHA^! 中获取每个更改的行,按行的作者 (git blame) 对它们进行分组,然后按行数对它们进行排序并列出如下

Commit SHA### updated code written by the following developers:
Jane Smythe (23 lines)
Rickard Strauss (8 lines)

我正在考虑在提交时使用它来打印到控制台(以下开发人员代码已修改,请确保在您的 PR 中标记它们),它甚至可能与 Bitbucket/ 集成Git 自动标记正在更改代码的开发人员或向他们发送电子邮件等。

我找到了this gist using python that appears to do something similar,但是为此需要使用除 bash/git 之外的其他语言吗?

【问题讨论】:

  • 我只是要把它放在那里 - 这是我见过的第一个很好的责备用法,我很遗憾以前没有想到它。
  • "为此需要使用除 bash/git 之外的单独语言吗?" - 我不确定单独的 bash 是否足够强大,但在标准 git 安装中你也可以找到perl,即使你碰巧安装了最少的 Windows 也有awk
  • 实际上我可以依靠我整个团队中的node,但如果我在公开场合谈论它,我会首选通用解决方案;)

标签: git bash diff blame


【解决方案1】:

你可以使用 git-diff-blame https://github.com/dmnd/git-diff-blame

你可以通过提交 sha 过滤

【讨论】:

    【解决方案2】:

    不可能可靠地做到这一点,因为 git 需要区分添加的行和编辑的行,这不起作用。

    一个好的方法是获取文件中贡献的百分比 - 在提交之前 - 并解决 PR​​ 中贡献最大的那些。顺便说一句,这就是 github 正在做的事情。

    【讨论】:

    • 我们可以看看 diff 中删除的每一行的作者吗?
    • github在哪里做这个?
    • @Damon github 正在推荐这些作者进行审查。 (PR页面右上角)
    • @Damon 一旦改变变得不平凡,意味着在这里插入一些行,在那里删除一些行,某个行号的作者的名字变得越来越没用。
    • 没有过多地使用 bitbucket。如果他们不提供该功能,请检查:stackoverflow.com/q/4589731/171318
    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 2010-09-25
    • 2019-10-18
    • 2015-07-10
    • 2020-07-21
    • 2010-10-16
    • 2021-11-04
    • 2018-09-25
    相关资源
    最近更新 更多