5

如何在 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 中看到已提交合并的父级。这专门用于查看未提交合并的父级。

4

2 回答 2

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
于 2012-12-12T16:58:21.923 回答
-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或类似的东西。

于 2012-11-27T18:57:18.920 回答