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

Ste*_*sku 5 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
Run Code Online (Sandbox Code Playgroud)

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

Edw*_*son 3

未提交合并的源存储在.git/MERGE_HEAD. 如果您正在执行 octopus 合并,则此文件中将有多个提交 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
Run Code Online (Sandbox Code Playgroud)