1

可能已经有人问过了,但我在这里找不到。

我有一个分支FEATURE合并到一个分支中STABLE,目前当我git showSTABLE获得最后一次提交时

commit 265d684b67e66ba762bd438c44e49881f7fd571b
Merge: 5285837 78d9687
Author: xxxxx
Date:   Thu Sep 6 18:58:46 2012 -0400

    Merge branch 'FEATURE' into STABLE

无法弄清楚FEATURE在合并到分支之前如何找到最后一次提交对分支的更改的人STABLE

这是向最后提交一些更改的提交者发送通知所必需的。

让我知道是否需要任何进一步的信息以及任何帮助/建议将不胜感激?

4

3 回答 3

3

不完全是您要查找的内容,但要打印出所有远程分支及其最后提交的作者,我在 Bash 上使用了以下命令:

IFS=$'\n' && for branch in $(git branch --all | grep "remotes/origin" | sed "s/->.*$//" | sort); do echo "$(git log --format=format:"%an" ${branch//[[:space:]]/} | head -n 1) - ${branch//[[:space:]]/}"; done | sort && unset IFS

一定要先做git fetch --all,以便将所有公共分支镜像到您的本地存储库中。

对于旧版本的 Git(1.9.x 及更早版本), git branch 的输出有所不同,它没有在箭头(“->”)之后打印本地跟踪分支。

IFS=$'\n' && for branch in $(git branch --all | grep "remotes/origin" | sort); do echo "$(git log --format=format:"%an" ${branch//[[:space:]]/} | head -n 1) - ${branch//[[:space:]]/}"; done | sort && unset IFS
于 2013-10-31T16:39:21.817 回答
1

在您的情况下,合并前的最后一次提交具有 78d9687 哈希。它是提交消息中的第二个。所以如果你知道是谁做的试试

$ git show 78d9687
于 2012-09-06T23:40:52.523 回答
1

您可以使用相对提交表示法来显示提交。在您的示例中,由于您将 FEATURE 合并到 STABLE 中,因此 STABLE 上的最后一次提交是HEAD^1(第一个父级),而 FEATURE 上的最后一次提交是HEAD^2(第二个父级)。

因此,要显示 FEATURE 引入的最后更改,您可以使用:

git show HEAD^2

在此之前显示一个:

git show HEAD^2~1

等等。

于 2012-09-06T23:42:26.810 回答