Wir unterhalten Webanwendungen mit einem gemeinsamen Hauptzweig und vielen parallelen Zweigen, einer für jede Installation, die jeweils nur wenige spezifische Änderungen aufweisen. Der Quellcode wird in Git verwaltet und ist ein hervorragendes Tool, wenn wir Funktionen und Bugfixes vom Hauptzweig in parallele übertragen möchten. Es gibt jedoch nur wenige Dateien, die sensibel sind, und das automatische Zusammenführen führt normalerweise zu schlechten Ergebnissen. Das Zusammenführen wäre also viel einfacher, wenn sie irgendwie markiert werden könnten und jede Zusammenführung zu Konflikten führen würde, die eine manuelle Zusammenführung erfordern.
Ich suchte nach einer Antwort:
- Ich verwende die Zusammenführungsoptionen --no-commit und --no-ff , aber es ist nicht dasselbe.
- Hier und hier stellt jemand die gleiche Frage, aber ohne Lösung.
- Ein ähnlicher Fall scheint zu sein, wie verhindert werden kann , dass Dateien mit .gitattributes zusammengeführt werden, die Folgendes enthalten: somefile.php merge = our . Ich habe versucht, eine Zusammenführungsoption zu finden, die zu Konflikten führen oder die manuelle Zusammenführung erzwingen würde, aber bisher keine gefunden.
- .gitattributes, die Folgendes enthalten: somefile.php -merge wird niemals automatisch zusammengeführt und erzwingt daher die manuelle Zusammenführung. Es ist eine 90% ige Lösung, aber ich versuche, die automatische Zusammenführung zu versuchen und sie als Konflikt zu markieren, unabhängig davon, ob sie erfolgreich ist oder nicht. Dies ist jedoch der Lösung bisher am nächsten. (... danke Charles Bailey für die Klarstellung ...)
- Jemand schlägt vor, einen benutzerdefinierten Zusammenführungstreiber ( 1 , 2 ) zu schreiben , aber wie das geht, ist mir alles andere als klar.
bearbeiten: Variante 4. Beschreibung
git fetch
zuerst mache und dann verwendegit difftool <file> FETCH_HEAD
, damit ich die Änderung in der Remote-Verzweigung manuell auf die lokale anwenden kann.