Das ist einfach und sauber.
Sie würden einen Verteilungszweig wie folgt erstellen:
> git checkout deployment-1234
Nun können Sie die einsatzspezifischen Änderungen vornehmen. Sobald dies geschehen ist, übertragen Sie es:
> git commit -as
Gehen Sie zurück zu Ihrem Master-Zweig.
> git checkout master
Führen Sie den Verteilungszweig sofort zusammen. Dadurch wird Ihr Master-Zweig mit den einrichtungsspezifischen Änderungen geändert, aber keine Sorge, wir machen das wieder rückgängig.
> git merge --no-ff deployment-1234
Um die Änderungen rückgängig zu machen, checken Sie einfach die Dateien vor der Zusammenführung aus und übertragen Sie sie mit amend.
> git checkout HEAD^ .
> git commit --amend
Das war's. Nun behandelt git die Dateiänderungen im ersten Commit von deployment-1234 als bereits vom Master geprüft und als ungeeignet befunden. Daher wird es diese Änderungen niemals dem Master-Zweig hinzufügen, selbst wenn Sie versuchen, den gesamten deployment-1234-Zweig mit dem Master-Zweig zusammenzuführen. (Probieren Sie es aus!)
Bei einem Projekt, das eine bessere Kontrolle erfordert, verwende ich auch eine andere Methode. Der Nachteil der obigen Methode ist, dass Sie bei einer zukünftigen Zusammenführung von deployment-1234 nach master einen Konflikt erzeugen könnten. Das ist in Ordnung, wenn diese Zusammenführungen manuell sind. Aber wenn Sie automatische Zusammenführungen benötigen, ist es besser, wenn ich diesen systematischen Konflikt verhindern kann. Deshalb habe ich ein Skript erstellt, das die einsatzspezifischen Änderungen anwenden und rückgängig machen kann. Die Änderungen selbst müssen dann nicht im Repository sein, sondern das Skript erscheint im Repository.