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指摘したように、それを にフィードできます。これを処理するシェル スクリプトを作成するのが最も簡単な場合があります。

この script という名前を付け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 に答える