Git合并了分支的最后一个提交/提交者

时间:2012-09-06 23:31:01

标签: git git-merge git-commit git-log git-show

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

我有一个分支FEATURE合并到一个分支STABLE,目前我从git show STABLE获取最后一次提交

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

    Merge branch 'FEATURE' into STABLE

无法弄清楚如何在FEATURE合并到STABLE之前找到最后一次向{{1}}分支提交了哪些更改?

需要向最后提交更改的提交者发送通知。

如果需要进一步的信息以及任何帮助/建议,请告诉我们?

3 个答案:

答案 0 :(得分:2)

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

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

请务必先执行git fetch --all,以便在本地存储库中镜像所有公共分支。

编辑:使用Git 1.9.x(可能更早),git分支的输出发生了变化,现在它会在箭头(“ - >”)之后打印本地跟踪分支。使用此改进版本删除了分支分支:

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

答案 1 :(得分:1)

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

$ git show 78d9687

答案 2 :(得分:1)

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

为了显示FEATURE引入的最后一些更改,您将使用:

git show HEAD^2

在此之前展示一个:

git show HEAD^2~1

等等。