Einfacher Git-Post-Commit-Hook, um festgeschriebene Dateien in einen bestimmten Ordner zu kopieren

Lesezeit: 2 Minuten

Ich möchte die festgeschriebenen Dateien automatisch in einen bestimmten Ordner kopieren, damit sie in einem Browser angezeigt werden können, aber ich möchte dies tun, ohne ein Bare-Repository erstellen zu müssen, das das Haupt-Repository widerspiegelt (wie gezeigt Hier) und ich möchte, dass dies beim Festschreiben geschieht.

Gibt es eine einfache Möglichkeit, einen Hook zu erstellen, der liest, welche Dateien festgeschrieben wurden, und sie auf einen Live-Webserver kopiert/aktualisiert?

Beispiel: Ich habe einen Ordner namens /example.com und ein Git-Repository. Ich möchte, dass, wenn ich index.html im Repository festlege, die entsprechende index.html-Datei von /example.com mit dem Inhalt der festgeschriebenen Datei aktualisiert wird

Eine gute Möglichkeit, dies zu tun, besteht darin, eine post-commit das läuft git checkout -f wobei der Arbeitsbaum auf das Verzeichnis festgelegt ist, das von Ihrem Webserver verfügbar gemacht wird, und das Git-Verzeichnis auf die festgelegt ist .git Verzeichnis in Ihrem Entwicklungs-Repository. Sie könnten zum Beispiel eine erstellen .git/hooks/post-commit Datei, die Folgendes getan hat:

#!/bin/sh
unset GIT_INDEX_FILE
export GIT_WORK_TREE=/example.com/
export GIT_DIR=/home/whoever/development/web-project/.git/
git checkout -f

Seien Sie jedoch vorsichtig damit – die -f bedeutet, dass git zu make Dateien entfernen oder überschreiben kann /example.com/ Übereinstimmung mit dem Baum in Ihrem letzten Commit.

(Denken Sie daran, die .git/hooks/post-commit Datei auch ausführbar.)

  • Das macht den Job perfekt. Danke schön

    – kioleanu

    4. Oktober 11 um 7:57 Uhr

  • Erwartet das Skript unter Windows vollständige Pfade und wie lautet die Syntax? Danke!

    – andli

    4. Juni 13 um 12:15 Uhr

  • @andli Ich verwende msysgit und es funktioniert mit denselben Pfaden, die Sie in einem Git-Bash-Fenster verwenden würden.

    – Schlomo

    7. August 13 um 15:31 Uhr

  • Schreibt das alle Dateien neu oder nur die neuen? Ich habe ein sehr großes Repo und möchte nicht jedes Mal alle kopieren.

    – alanj

    25. Mai ’15 um 19:38 Uhr

.

784130cookie-checkEinfacher Git-Post-Commit-Hook, um festgeschriebene Dateien in einen bestimmten Ordner zu kopieren

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy