Wie man Änderungen von einem Live Deployment-Webserver zurück in das git Repository überträgt

894
timeSmith

Ich arbeite in einer Umgebung, in der die Entwickler direkt mit Skript- und Image-Dateien auf dem Live Deployment-Webserver arbeiten. Das ist beängstigend und hat einige, wenn auch überraschend wenige Probleme verursacht. Die Quellcodeverwaltung wird für diese Änderungen nicht verwendet. Die Änderungen werden auf dem Live-Server und nur auf dem Live-Server vorgenommen. Ich weiß nicht, wie ich es so machen soll, dass Änderungen, die andere Entwickler auf dem Live-Webserver vorgenommen haben, beibehalten werden, wenn ich meine Änderungen auf dem Live-Webserver bereitstelle. Dieses Problem scheint die Verwendung der Quellcodeverwaltung eher zu verschlechtern als besser.

Ich habe git und svn server persönlich eingerichtet und die Versionskontrolle mit git und svn in den letzten Jahren für viele Desktop-App- und Mobile-App-Projekte verwendet. Aber das hat mich verblüfft.

2
Wenn Entwickler live arbeiten, müssen sie ihre Korrekturen direkt an den Produktionszweig übergeben, um schließlich die neuen Vorgänge zusammenzuführen oder umzugestalten. Wäre das eine Option? slhck vor 9 Jahren 0
Nein, ich bin nicht befugt, die anderen Entwickler anzuweisen oder zu bitten. Übrigens wird die Quellcodeverwaltung für diese Änderungen überhaupt nicht verwendet; Die Änderungen werden auf dem Live-Server und nur auf dem Live-Server vorgenommen. Ich habe meine Frage aktualisiert, um dies zu berücksichtigen. timeSmith vor 9 Jahren 0
Können Sie während einer Bereitstellung zuerst die lokalen Änderungen live festlegen und dann mit dem Produktionszweig zusammenführen? Es ist ein ziemliches Durcheinander für jede Implementierung, aber ich sehe keinen anderen Weg (obwohl er nicht mit Git erlebt wurde.) slhck vor 9 Jahren 0
Ich weiß nicht, wie ich das machen soll. Ich würde wenn ich könnte. Das Beste, was ich mir dabei gedacht habe, ist, alle relevanten Dateien vom Server auf einen lokalen Check-out zu kopieren, den ich zu diesem Zweck einhalte, von diesem Check-out aus zu übernehmen, in meinen ausgecheckten Zweig zu ziehen, zusammenzuführen, Festschreiben und das Ergebnis zurück auf den Server kopieren. Aber das scheint wirklich ... Nun, ich hoffe, es gibt einen besseren Weg. timeSmith vor 9 Jahren 0

1 Antwort auf die Frage

1
mc0e

Am besten verwenden Sie git als Teil Ihrer Bereitstellung. So sehr, dass Sie relativ wenig Antworten zu anderen Verwendungen von Git finden.

Das heißt, Git kann auf viele Arten verwendet werden. Wenn Ihre Bereitstellung auf dem Live-Server erfolgt und nicht von git stammt, ist es dennoch sinnvoll, Änderungen an git vorzunehmen, so dass Sie zumindest sehen können, was sich wann geändert hat, und das Zeug zurücksetzen. Was Sie verlieren werden, sind vernünftige Kommentare und Gruppierungen von Änderungen in Commits, sodass Sie schnell sehen können, wohin Sie zurückkehren möchten. Außerdem können Sie sehen, welche Änderungen in unterschiedlichen Dateien wahrscheinlich voneinander abhängig sind.

Es ist durchaus möglich, dass Ihr Live-Code ein git-Arbeitsverzeichnis ist, und Sie können automatisierte Aktualisierungen des Repositorys von cron aus ausführen.

Etckeeper ( https://github.com/joeyh/etckeeper ) ist in gewisser Hinsicht vergleichbar. Es ist für das Aufzeichnen von Änderungen im / etc-Verzeichnis eines Servers im Gegensatz zu einer Website gedacht, ansonsten ist es dem, was Sie sich vorstellen, ziemlich ähnlich. Es wird wahrscheinlich einige nützliche Ideen in seine Commit-Hooks und ähnliches enthalten, aber es ist auch kompliziert, da es verschiedene VCS-Systeme abdeckt und die Kompatibilität mit mehreren Betriebssystemen gewährleistet.