git: was genau ist ein Merge-Commit in Git?

Lesezeit: 2 Minuten

Ich habe ein paar Blogs durchgesehen, um ein Merge-Commit zu verstehen, aber nicht ganz klar, was es ist und was die beste Vorgehensweise ist, um es zu vermeiden. Und das Baumdiagramm des Git-Protokolls fügte meinem Verständnis von Merge-Commits weitere Verwirrung hinzu. Hilfe?

Benutzeravatar von Jens Schauder
Jens Schauder

Ein Merge-Commit ist genau wie ein anderes Commit, der Zustand Ihres Repositorys zu einem bestimmten Zeitpunkt plus die Historie, aus der es entstanden ist.

Das Besondere an einem Merge-Commit ist, dass es mindestens zwei Vorgänger hat, daher macht ein Plain-Vanilla-Diff keinen Sinn, Sie können den Merge nur mit einem der Vorgänger vergleichen, der die Änderungen von den anderen Eltern ergibt )

Um Merge-Commits zu vermeiden, können Sie rebasieren Ihre Änderungen Vor sie in ein entferntes Repository schieben.

  • ok, also im diagramm https://stackoverflow.com/questions/18584376/git-what-exactly-is-a-merge-commit-in-gitstackoverflow.com/q/5860944/2663585 , AB und C sind lokale Commits und A war die letzte lokale Änderung und dann wurde git fetch durchgeführt. Habe ich recht?

    – Iowa

    3. September 2013 um 5:09 Uhr

  • und vorausgesetzt, ich arbeite an einem öffentlichen Repository, ist es sicher, einen git pull –rebase durchzuführen

    – Iowa

    3. September 2013 um 5:14 Uhr

  • Nein, C ist das letzte lokale Commit. Ansonsten ist Ihr Verständnis richtig (sprich: dasselbe wie meins)

    – Jens Schauder

    3. September 2013 um 5:20 Uhr

  • pull –rebase scheint sicher zu sein, siehe diese Antwort auf die Frage, die Sie selbst gepostet haben stackoverflow.com/a/11531552/66686 aber ich habe es bisher nie benutzt. Diese Seite sieht auch interessant aus, obwohl ich sie nur überflogen habe: notes.envato.com/developers/rebasing-merge-commits-in-git

    – Jens Schauder

    3. September 2013 um 5:21 Uhr

  • @learning2learn Ja, der git merge-Befehl erstellt standardmäßig Merge-Commits, außer wenn ein “Fast Forward Merge” möglich ist. Es ist möglich, git so zu konfigurieren, dass es Merge-Commits vermeidet und stattdessen eine Rebase durchführt. Es ist auch möglich, es so zu konfigurieren, dass Merge-Commits durchgeführt werden, selbst wenn ein schneller Vorlauf möglich ist. Zumindest denke ich, dass es so ist.

    – Jens Schauder

    9. April 2020 um 13:02 Uhr

1440770cookie-checkgit: was genau ist ein Merge-Commit in Git?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy