私はプロジェクトにGitを使用しており、ベストプラクティスに従おうとしています。
git merge --squash
を使用してtopic branchをdevブランチにマージします。これにより、私のdevブランチがクリーンに保たれます。これで履歴が保持され、gitkを使用すると、すべてのコミットがどこから来るかを確認できます。ただし、-に適用されたコミットのみのみを確認できるようにしたいです。 マスターブランチ。私が試してみました:
git log master
git show-branch
これらのどれもjustmasterブランチの履歴を示していません。これを簡単に行う方法はありますか?
私があなたを正しく理解しているなら、あなたはマージをマスターに戻したいのですが、それらのマージの履歴は見たくないでしょう。私は信じている:
git log --merges
あなたが望むものをあなたに与えるでしょう。
更新:-first-parentを追加すると、サウンドからこれを修正する必要があります。
git log --merges --first-parent
-最初の親
Follow only the first parent commit upon seeing a merge commit.
このオプションを使用すると、特定のトピックブランチの展開を表示する際の概要がわかりやすくなります。これは、トピックブランチへのマージは、随時更新されるアップストリームに調整するだけである傾向があり、このオプションを使用すると、に持ち込まれた個々のコミットを無視できるためです。そのようなマージによるあなたの歴史。
残念ながら、Gitはコミットのブランチ情報を保存せず、コミットはブランチに属していません。 Gitのブランチは、コミットの過程で「タグを移動する」だけであり、予想される一連のコミットではありません。
したがって、Gitにはそのような概念がないため、基本的にブランチに属するコミットを表示することはできません。
Gitは、どのブランチが他のどのブランチから発生したかに関する情報を保存しないため、どのブランチを表示したいかを自動的に推測する方法はありません。
その点で、--first-parent
は、特に、たとえば複数のマスターを持つのは簡単なので、最終的には役に立ちません。考えてみましょう:
wc1$ git clone git://shared.com/repo
wc1$ (hack code, git commit)
wc2$ git clone git://shared.com/repo
wc2$ (hack code, git commit, git Push somewhere)
wc1$ git fetch Origin; git merge Origin/master; git Push somewhere master;
(ランダムなプロジェクトを自由に取り、この演習を行ってください。)グラフ化します。したがって、コミットが作成されたブランチの名前でタグ付けされていても、「1つのブランチのみ」を意味のあるグラフにすることはできません(両方がマスターであるため)。