2017-01-13 13 views
7

gitを使って作業ブランチから自分のmasterブランチにマージした後、マージが起こる前にmasterで最後にコミットを見つけることができます。これはどうすればいいですか?これを行うにはマージの前に最後のgit commitを見つける方法

+0

'git log -1'を試すと、選択したブランチの最後のコミットの詳細が得られます。同様に、 'git log -2'は最後の2つのコミットの詳細を与えるでしょう。 – Abhi

+0

また、正しいマージベース(fork-point)を得られない場合に備えて、gitkを使って構造を視覚化し、コマンドスクリプトをチェックしてみてください。 –

答えて

3

簡単な方法は、あなたがマージポイントを見つけるまで、そしてちょうど右側のグラフを下に従って

git log --pretty=format:'%h : %s' --graph 

を入力することです。また、ファイル、temp.txtに結果を出力します

git log --pretty=format:'%h : %s' --graph > temp.txt 

、あなたのエディタで開いて、マージのようなテキストを探すために検索機能を使用できることを行うことができます。

私は、この情報を確認するために `` `git_log``を使用することができますので、このアプローチは、最新の系譜についての他の質問の多くに答えるために便利ですので、私の.bash_profileファイルに

alias git_graph="git log --pretty=format:'%h : %s' --graph" 

を入れているコミット。

+0

なぜ 'git log -1'ですか? – mallaudin

+0

@mallaudin:Obromiosは、マージがいくつかの、あるいは多くのコミット*の「マスター」の後ろにある状況を指していると思います。つまり、 'git log -1'は非マージコミットを1つだけ表示します。 – torek

+0

うん。それは本当だ。私は今も同じだと思う。 – mallaudin

4

を参照してください。そして、その最後に発生した操作は、マージしたと仮定すると、

:あなたがログとREFLOGを使用して、それに対処できるよう

git log [email protected]{1} -1 

[email protected]{1}は、最後の操作の前に、前のHEADを指します。

git logは、現在のブランチでコミットのシーケンスを表示するので、マージ後は常にマージコミットとなり、マージされたブランチからコミットする前に表示されます。 git reflogは、リポジトリ内の操作のシーケンスを示します(例えば、merge、rebase)。ドキュメントで説明されているように:

参照ログまたは "reflogs"は、ブランチやその他の参照のヒントがローカルリポジトリで更新されたときに記録します。 Reflogは、さまざまなGitコマンドで、参照の古い値を指定するのに便利です。

+0

私はこれを試してみると、マージされたブランチの最後のコミットを行いました。ブランチがマージされる前の最後のコミットではありませんでした。 – Obromios

+0

@Obromios、どのgit reflog - オンラインで表示されますか?リスト内のどのような操作ですか?マージの前に次のものを選択する必要があります(HEAD @ {0} - マージ、HEAD @ {1}の場合)、マージは最後の操作ではないと思います。 – 2oppin

3

あなたはすでにここにマージコミットを見つけるための一つの方法である、masterbranchを合併している場合:

# With the ancestry-path option, 'git rev-list branch..master' (or git log) 
# will only list commits which are parents of 'master' 
# *and* children of 'branch' 
# 
# If 'branch' was merged into 'master', the last commit in this list 
# is the merge commit : 
$ git rev-list --ancestry-path branch..master | tail -1 

masterの状態マージは、こののコミット最初の親である前に:

$ h=`git rev-list --ancestry-path branch..master | tail -1` 
$ git log $h^ 
+0

これをチェックして動作します。しかし、私はより一般的に有用なので、私は私の答え、stackoverflow.com/a/41628915/1299362を受け入れることになります。マージが長い、長い道のりだったなら、自分の答えを使って自分自身を見ることができました。 – Obromios

関連する問題