27

マスターライブの2つのブランチがあります。マスターは開発ブランチであり、ライブに移行する準備ができていないコミットが含まれています。

  • ライブブランチに入る必要 のあるマスターブランチに変更が加えられた場合、それらはマスターからライブにチェリーピックされます。
  • ライブブランチに対してコミットが行われることがあり、それがマスターにチェリーピックされるか、マスターにマージされます。

私ができるようにしたいのは、ライブではないよりもマスターにあるすべてのコミットを表示することです。私はこことグーグルで良い検索をしました、そして私はこれを使用していました:

git log --cherry-pick --no-merges --oneline master...live

これは、ライブマスターにマージするまで機能しました。しかし今では、両方にあるいくつかのコミットがリストされています。

では、ライブブランチではなくマスターブランチにあるすべてのコミットを表示するための正しいコマンドは何ですか?

4

3 に答える 3

27

あなたはとても近いです。正しいコマンドは次のとおりです。

git log --cherry-pick --oneline --no-merges --left-only master...live

ログのマンページから:

--left-only, --right-only

リストは、対称範囲のそれぞれの側でのみコミットします。つまり、<respとマークされるものだけです。>--left-rightによって。

たとえば、-cherry-pick --right-only A ... Bは、Aにある、またはAのコミットとパッチに相当するBからのコミットを省略します。つまり、これはgitcherryからの+コミットを一覧表示します。 A B.より正確には、-cherry-pick--right-only--no-mergesが正確なリストを提供します。

于 2012-12-19T17:44:39.350 に答える
4

git log master ^live --no-merges

于 2012-12-13T10:53:50.740 に答える
2

gitpatch-idとgitlogを組み合わせた短いPythonスクリプトを使用して自分の問題を解決することになりました。スクリプトは、https://gist.github.com/4565584にあります。

于 2013-01-18T16:08:40.713 に答える