Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何将一个或多个作者的所有提交分开以便于比较?_Git_Compare_Git Diff - Fatal编程技术网

Git 如何将一个或多个作者的所有提交分开以便于比较?

Git 如何将一个或多个作者的所有提交分开以便于比较?,git,compare,git-diff,Git,Compare,Git Diff,我试图了解一个在基线上工作的小团队的变化。不幸的是,该团队已经将他们的工作合并到开发分支中,并且现在已经用主团队的提交以非连续的顺序更新该分支 我认为理解他们工作的最好方法是将他们当前的工作与他们开始时的来源进行比较,但现在我在比较中看到了所有主要团队的变化。我想知道是否有一种方法可以让我只隔离小团队所做的更改(即,他们最初在一个分支中所做的工作,然后是他们在主开发分支上所做的所有提交),这样我就可以将其与他们作为其工作基础而开始的特定提交进行比较 这变得很麻烦,因为主要团队的更改已经添加到他们

我试图了解一个在基线上工作的小团队的变化。不幸的是,该团队已经将他们的工作合并到开发分支中,并且现在已经用主团队的提交以非连续的顺序更新该分支

我认为理解他们工作的最好方法是将他们当前的工作与他们开始时的来源进行比较,但现在我在比较中看到了所有主要团队的变化。我想知道是否有一种方法可以让我只隔离小团队所做的更改(即,他们最初在一个分支中所做的工作,然后是他们在主开发分支上所做的所有提交),这样我就可以将其与他们作为其工作基础而开始的特定提交进行比较


这变得很麻烦,因为主要团队的更改已经添加到他们的提交之间,所以没有连续的提交块,我只能做一个简单的比较,所以我想知道是否可以隔离他们的提交并将其与开始提交进行比较。谢谢

您可以使用
git log
按作者筛选提交:

git log --author='^(Paolo|John).*$' --perl-regexp

这将显示我和约翰所做的所有承诺。

这是否回答了您的问题?不,这不是因为我正在寻找一个补丁文件,其中包含可以应用于基本提交之上的更改。仅在每次提交时查看提交注释或更改是不够的。这些更改需要展平为一次提交,然后才能应用。您好,感谢您的回复,但我有兴趣将所有更改视为提交,以便我可以使用像BeyondCompare这样的difftool进行比较。将其视为提交日志或其衍生工具无法实现这一点。你是什么意思?您可以通过管道将提交ID的输出传输到git Diff,例如,如果我有一个文件,它有100个提交,这些提交来自5个人,顺序不连续。如果这些更改都不依赖于之前的更改,那么我希望生成相同的文件,但只包含5位作者中的3位所做的更改。这样我就可以更仔细地看看其他两个人在文件上做了什么。这只是一个假设的例子,但在我的具体案例中,这两个人将代表一个正在处理大型存储库的子团队。这有意义吗?我相信您的方法只处理提交日志,如果提交日志很多,则需要多个git diff命令来查看每个更改。我正在寻找一种平坦的方法来实现这一点,所以我只需要一个git diff命令。