Haftungsausschluss: Ich persönlich bin mit der Verwendung von Git als Bereitstellungstool sehr skeptisch. Ein echtes Build- / Deployment-Tool bietet viele Möglichkeiten, die Git nicht ausführt: Versionsregeln, Kompilierung / Vorverarbeitung, Verwalten von Dateiberechtigungen usw. Wenn Sie Git mithilfe von Git "implementieren", müssen diese Schritte in der Regel manuell ausgeführt werden. Sie scheinen jedoch grundsätzlich mit Ihrem Bereitstellungsprozess zufrieden zu sein. Ich werde damit aufhören, darüber zu streiten.
Um Ihre Fragen zu beantworten:
Frage: Soll ich den Master-Zweig oder die markierte Version des Masters auf der Produktionsbox ausführen?
Beide können funktionieren, aber ich würde es vorziehen, eine getaggte Version zu verwenden . Die heruntergezogenen Dateien werden exakt gleich sein, es besteht also kein Unterschied. Die Verwendung einer getaggten Version ist jedoch in einigen Fällen sicherer:
- Wenn jemand in der Zeit zwischen dem Tagging und der Bereitstellung zum Mastering bereit ist, erhalten Sie immer noch die richtige Version.
- Wenn jemand später nur
git pull
in der Produktion ausgeführt werden sollte,master
würde Git mit den Standardeinstellungen und dem ausgecheckten Status den neuesten Status vonmaster
(was auch immer das ist) abrufen. Wenn ein Tag ausgecheckt ist, ändert sich nichts.
Ich bin mir bewusst, dass das Ausführen mit einer getaggten Version dies in einem getrennten Zustand tut, aber ich sehe darin eigentlich kein Problem, außer wenn Sie einen Hotfix benötigen.
Ich hoffe wirklich, dass Sie nicht implizieren, dass Sie beabsichtigen, Hotfixes für die Produktion festzulegen (und möglicherweise sogar zu entwickeln)? Wenn ja, dann bitte nicht :-).
Wie auch immer: Ja, der abgetrennte HEAD-Status sollte kein Problem sein. Ich würde es tatsächlich als einen Vorteil betrachten, da es klar macht, dass Sie keine Dinge für die Produktion festlegen sollten. Wenn Sie wirklich das Gefühl haben, dass Sie das tun müssen, können Sie später eine Zweigstelle erstellen und auschecken, wenn Sie dies brauchen (aber bitte nicht).
Zum Schluss noch ein Rat:
Dann holen und mischen wir auf der Produktionsbox die neueste Version von master (indem Sie git pull origin master ausführen)
Selbst wenn Sie darauf bestehen, Git für die Bereitstellung zu verwenden, ist dies keine gute Idee git pull
, da git pull
automatisch eine Zusammenführung ausgeführt wird, wenn zuvor der falsche Zweig ausgecheckt wurde (oder wenn Sie sogar lokale Commits haben, was Sie hoffentlich nicht tun). Durch die Zusammenführung erhalten Sie eine (ungeprüfte) Mischung von Daten aus verschiedenen Zweigen. Ich würde eher empfehlen:
git fetch git checkout MY_VERSION_TAG
Auf diese Weise erhalten Sie genau die Dateien von MY_VERSION_TAG
. Darüber hinaus empfehle ich dringend, git status
vor der Bereitstellung nach lokalen Änderungen zu suchen. Wenn welche gefunden werden, untersuchen Sie diese vor der Bereitstellung.