在git中显示未提交的合并的父项

时间:2012-11-27 18:31:51

标签: git

如何在git中看到未提交的合并的父级?我可以通过git log -1看到一位家长,但我如何看到另一位家长?

这在Mercurial中很容易做到:

$ hg parents
changeset:   2:b65656dbfff6
tag:         tip
parent:      0:1806d848df54
user:        Stephen Rasku 
date:        Tue Nov 27 10:14:31 2012 -0800
summary:     c

changeset:   1:9aaa22944f41
user:        Stephen Rasku 
date:        Tue Nov 27 10:14:01 2012 -0800
summary:     b

git中有什么相同的东西吗?我知道你可以在git中看到一个已提交合并的父母。这是专门为了看到未提交合并的父母。

2 个答案:

答案 0 :(得分:3)

未提交的合并的来源存储在.git/MERGE_HEAD中。如果您正在执行章鱼合并,则此文件中将有多个提交ID,换行符分隔。合并的目标当然是HEAD

如果您想要详细输出,与Mercurial提供的示例类似,您可以将其输入git log,如您所述。编写一个shell脚本来处理这个问题可能最简单。

如果您要将此脚本命名为git-parents,并将其放在路径中,则只需运行git parents即可获得与您所描述内容类似的体验:

#!/bin/sh
git --no-pager log -1

WORKDIR=`git rev-parse --show-toplevel`
if [ -f "${WORKDIR}/.git/MERGE_HEAD" ]; then
    for a in `cat "${WORKDIR}/.git/MERGE_HEAD" | xargs` ; do
        git --no-pager log -1 $a
    done
fi

答案 1 :(得分:-2)

我没有回复在这里尝试,但这不会起作用吗?

$ git show HEAD^ # shows first parent
$ git show HEAD^2 # shows second parent
$ git show HEAD^3 # and so on...

你是否需要显示所有父母,无论多少?我想你可以用git log -1 --parents或类似的东西做一些脚本。