Nun, dass die Kommentare von @Hasturkun sagt alles ehrlich zu sein, aber Sie haben drei Fragen:
1. es sehen Prüft, ob alle in einem Zweig begehen bereits im ursprünglichen Stammhaus?
Nicht versuchen, sich zu wiederholen @Hasturkun Zitat sagt: "Nur Zweige, deren Tipps sind nicht erreichbar von der angegebenen Commit".
In diesem speziellen Fall denke an den Git Tree von Commits als eine U-Bahn-Karte. Sie können nur rückwärts von einem Knoten zum nächsten reisen.
master : - - - -0
\
branchA : E - - - - F - - - - G
Wenn auf master
Sie laufen git branch --no-merge
und die manuelle Seitendefinition zu nehmen? Kannst du G (die Spitze von branchA
) von master
HEAD erreichen, commit 0? Nein, können Sie nicht, also wird branchA
als nicht zusammengeführtes Zweig aufgeführt.
Wie wäre es, wenn Sie git branch --no-merge
aus dem HEAD von branchA
laufen (commit G)? Wird master
ein nicht-gemischter Zweig sein? Nein, es wird als ein verschmolzener Zweig betrachtet, der in dem obigen Beispiel trivial zu verstehen ist.
Wie wäre es mit diesem Beispiel?
master : - - - -0
\
branchA : E - - - - F - - - - G - - - Z
\ /
branchB : Y - - - W - - -
Output git Zweig läuft in allen drei Zweigen --no-fusionierte:
master
branchA
branchB
branchA (nothing)
branchB (nothing)
2. Und was Kirsche Picks? Ist es schlau genug zu sagen, dass ein Commit von 1 Zweig bereits in den ursprünglichen Stammzweig zurückgekehrt ist?
Cherry-Picks erzeugen ein komplett anderes Commit, also benutze ich sie nur, wenn ich wirklich muss. Da es sich um eine ganz andere begehen schafft, unterscheiden sich die Bäume:
Schauen Sie sich das Experiment nur habe ich, betrachten Meister und branchA gleich:
Experience 1) fusionieren Mit
(master)$ touch empty && git add . && git commit -am "File Added"
(master)$ checkout branchA
(branchA)$ git branch --no-merged
master
(branchA)$ git merge master
(branchA)$ git branch --no-merged
// outputs nothing
Experience 2 Mit) Kirsche-Pick
(master)$ touch empty && git add . && git commit -am "File Added"
(master)$ checkout branchA
(branchA)$ git branch --no-merged
master
(branchA)$ git cheery-pick <commitID from above>
(branchA)$ git branch --no-merged
master
3. und wenn ein Zweig bereits verschmolzen worden ist und neue Commits wurden, werden hinzugefügt Wählen Sie diesen Zweig als nicht verschmolzen?
Ja, wegen aller oben genannten.
Haben Sie die Manpage gelesen? es heißt "Nur Zweige auflisten, deren Tipps vom angegebenen Commit aus nicht erreichbar sind" – Hasturkun