質問

私は自分のプロジェクトにGitを使用しており、ベストプラクティスに従おうとしています。

  1. 私はaに取り組んでいます トピックブランチ
  2. 準備ができたら、私はマージします トピックブランチ 私に 開発者 使用してブランチ git merge --squash. 。これは私を保ちます 開発者 ブランチクリーン。
  3. いつでも 開発者 ブランチは安定しており、チームはリリースの時間だと判断します。 開発者 に分岐します 主人 ブランチ、 それなし スカッシュを使用し、そのコミットメントをバージョンリリースとしてタグ付けします。

これは私たちの歴史を維持する必要があり、gitkを使用して、すべてのコミットがどこに入ってくるかを見ることができます。しかし、私は見たいと思っています それだけ に適用されるコミット 主人 ブランチ。私が試してみました:

git log master
git show-branch

これらのショーはありません ただ の歴史 主人 ブランチ。これを簡単に行う方法はありますか?

役に立ちましたか?

解決

私があなたを正しく理解しているなら、あなたはそれらの合併の歴史ではなく、マージがマスターに戻るのを見たいです。私は信じている:

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つのブランチだけ」を意味のあるグラフ化することはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top