Ich habe ein nacktes CENTRAL-Repository, in dem drei Entwickler-Repositorys normal abgerufen und verschoben werden.
Ich habe auch zwei andere Repositorys, die vom CENTRAL Bare Repo abgerufen werden: eines ist der Live-Server und das andere ist ein Test- / Stage-Server - jedes wird von seinem jeweiligen Zweig abgerufen.
Das Szenario ist das folgende: Ich habe ein post-update
Hook-Skript im CENTRAL-Repo, das automatisch auf die Test- und Live-Repos zugreift und für jedes einen Pull-Befehl ausführt. Dadurch werden sowohl Test- als auch Live-Server aktualisiert, je nachdem, welcher Zweig neue Commits hat. Das alles funktioniert super.
Das Problem ist folgendes: Es kann vorkommen, dass im Notfall Dateien direkt auf dem Server aktualisiert werden (über FTP oder was auch immer) und das CENTRAL-Skript nach dem Update fehlschlägt, da Konflikte beim Zusammenführen / Überschreiben auftreten. Es gibt keine Möglichkeit, dieses Szenario zu vermeiden, und es ist unvermeidlich.
Was ich gerne hätte, ist Folgendes: Ich möchte, dass der Pull von den Live- und Test-Sites beim Pull immer überschrieben / zusammengeführt wird. Immer. Diese Repos sind nur zum Ziehen bestimmt, da sie nicht für die Entwicklung bestimmt sind.
Bei all meinen Nachforschungen kann ich keine gute Lösung finden, bei der ein Pull immer ein Überschreiben der lokalen Dateien erzwingt. Ist das überhaupt möglich? Wenn ja, wäre dies ein großartiges Entwicklungsszenario.