Ich benutze Git seit ungefähr einem Jahr und denke, es ist fantastisch, aber ich habe gerade mit einer zweiten Version des Projekts begonnen und eine neue Niederlassung dafür gestartet. Ich kämpfe ein wenig mit dem besten Weg, um die Dinge zu bewältigen.git - Überspringen bestimmter Commits beim Zusammenführen
Ich habe zwei Zweige namens Master10 (für v1) und Master20 (für v2). Ich habe in der Version 1 auf Branch Master10 Fehlerbehebungen gemacht und neue Sachen von Master20 entwickelt. Immer wenn ich einen Bugfix mache, füge ich ihn in v2 ein, indem ich master20 auschecke und git merge master10
mache. So weit, ist es gut.
Jetzt habe ich jedoch eine Änderung in v1 vorgenommen, die ich in v2 nicht möchte, aber ich möchte weitere Fehlerbehebungen fortsetzen. Wie kann ich Git mitteilen, dass er diesen bestimmten Commit (oder eine Reihe von Commits) überspringen soll, aber dass ich in Zukunft weitere Fehlerbehebungen zusammenführen möchte?
Ich dachte, git rebase
könnte was ich brauche aber lesen Sie das Dokument und mein Kopf fast explodiert.
Ich denke, was ich will, ist etwas wie ein "git sync" -Befehl, der git sagt, dass zwei Zweige jetzt synchron sind und in Zukunft die Commits von diesem Sync-Punkt nur zusammenführen.
Jede Hilfe wird geschätzt.
Ich frage mich allerdings, ob das nicht ein bisschen gefährlich ist: Was soll Mast ~ 3 nicht ignorieren, sondern einfach verschieben? Mit Ihrer Lösung würde jedes nachfolgende git merge maint nicht zurück master ~ 3 zusammenführen. – VonC
Für verschobene Festschreibung, ich würde einen "Unterzweig" erstellen, genau das tun, was Sie beschreiben (einschließlich Git merge -s unsere maint ~ 3), dann alles vom Unterzweig zum Master zusammenführen. Ich glaube, ein zukünftiges "git merge maint" würde diesmal "mast ~ 3" verschmelzen. – VonC
Ich denke, wenn du das Verschmelzen verschieben musst, hast du keine andere Wahl, als es zu überspringen (merge -s uns) und es später anzuwenden der Kirschbaum-Befehl. Sobald das Commit vom Master aus erreichbar ist, kann es nicht mehr zusammengeführt werden. Das doppelte Zusammenführen der gleichen Änderung ist eines der Hauptziele von git. – araqnid