Frage

Ich bin mit Git für mein Projekt und versuchen, am besten Praxis zu folgen:

  1. Ich arbeite an einem Thema Zweig
  2. Wenn Sie fertig sind, ich fusionieren die Thema Zweig in meine dev Zweig mit git merge --squash. Das hält mein dev astrein.
  3. Wenn die dev Zweig ist stabil und das Team entscheidet, dass es Zeit für eine Veröffentlichung, wir fusionieren die dev Zweig in den Master Zweig, ohne mit Kürbis und Tag, das als Version begehen.

Dies sollte unsere Geschichte halten, und gitk verwenden, können wir sehen, wo all die Commits in kommen. Aber ich möchte in der Lage zu sehen, nur angewendet Commits zum Master Zweig. Ich habe versucht:

git log master
git show-branch

Keine dieser Show nur die Geschichte des Master Zweig. Gibt es eine Möglichkeit, dies zu leicht machen?

War es hilfreich?

Lösung

Wenn ich Sie richtig verstehen, wollen Sie den Merges zurück in Master sehen, aber nicht die Geschichte dieser verschmilzt. Ich glaube, dass:

git log --merges

Wir zeigen Ihnen, was Sie wollen.

UPDATE:. --First-parent Hinzufügen sollte dieses Problem beheben von den Klängen der es

git log --merges --first-parent

- erst Eltern

Follow only the first parent commit upon seeing a merge commit.

Diese Option kann einen besseren Überblick geben bei der Betrachtung der Entwicklung eines bestimmten Thema Zweig, weil verschmilzt zu einem Thema Zweig neigt dazu, nur etwa um aktualisierte Einstellung stromaufwärts von Zeit zu Zeit, und dies Option ermöglicht es Ihnen, das ignorieren einzelne Commits brachte in Ihrem Geschichte durch eine solche Zusammenführung.

Andere Tipps

Leider ist Git nicht speichert Brancheninformationen für eine Festschreibung und Commits nicht gehören zu einem Zweig. Niederlassungen in Git sind nur in einem Kurs des Commits „Tags zu bewegen“ und nicht eine Folge von Commits als man erwarten würde.

Also im Grunde kann man nicht verpflichtet zeigen, die zu einem Zweig gehören, da es kein solches Konzept in Git ist.

Da Git speichert keine Informationen darüber, welchen Zweig ist im Entstehen begriffenen, von denen andere, gibt es keinen automatischen Weg, welchen Zweig erraten Sie möglicherweise angezeigt werden sollen können.

In diesem Zusammenhang --first-parent wird letztlich nicht helfen, vor allem, da es einfach mehr als einen Master zu haben ist, zum Beispiel. Bedenken Sie:

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;

(Fühlen Sie sich frei Zufälliges Projekt zu übernehmen und diese Übung.) Graph es. So können Sie nicht sinnvoll kann Graph „nur ein Zweig“, auch wenn die Commits mit dem Namen der Branche markiert wurden sie auf gemacht wurden (weil beide Master sind).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top