das ist eher eine know-how Frage:
Ich versioniere mit git und sende Dateien für einen PHP-CMS mit rsync an die Test- oder Produktions-Site. Jetzt möchte ich auf dem Laufenden halten, welche Commit derzeit mit einem idiotensicheren und automatisierten System bereitgestellt wird. Ich habe darüber nachgedacht:
Richten Sie einen Git Hook ein, um eine Textdatei mit dem neuesten Tag und Commit Hash hinzuzufügen / zu aktualisieren. Dann kann ich das Commit leicht nachschlagen.
Mein Problem ist, dass das Skript zum Zeitpunkt des Pre-Commits den Commit-Hash nicht kennt. Gibt es eine direkte Methode, um das zu erreichen (oder einen anderen Ansatz, der zu den gleichen Enden kommt)?
Vielen Dank für Ihre Eingabe im Voraus!
Okay, ich denke, ich habe eine gute Lösung:
Es gibt einen Git-Hook namens post-commit und hier ist was ich tue:
Inhalt der Hook-Datei:
%Vor%Jetzt bin ich sicher, dass die Datei nach jedem Commit auf dem neuesten Stand ist, also bin ich bereit, solange ich vor dem Deployment ein Commit mache.
Hinweise: Faty Anfänger Vorbehalte: machen Sie die Hook-Datei ausführbar, git ignoriert die Datei ohne Warnung, wenn es nicht ist.
Alles über git hooks: Ссылка
Alles über .gitignore: Ссылка
Prost,
Martin
Da Sie rsync zu deploy
Ihren Code verwenden, dann tun Sie etwas wie folgt:
Fügen Sie dann das VERSION.txt
in das rsync-Paket ein.
Der String git describe sieht folgendermaßen aus:
%Vor%Oben:
Dies ist eine FAQ.
Suchen Sie nach export-subst in gitattributes (5), Sie müssen git-archive (1) verwenden, um die Ersetzung durchzuführen.
(% H gibt Ihnen den Hash. Um das Tag zu erhalten, benötigen Sie noch ein Skript, das aufruft git-describe (1), ich sehe kein Format dafür)
Tags und Links git deployment pre-commit