2017-01-24 2 views
1

Ich möchte ein Skript schreiben, das nach einer Git Pull-Anforderung die gezogenen Dateien an einen anderen Speicherort kopiert.Auto Update Git Skript

Ich verstehe, dass ich die Anfrage in eine der Hook-Dateien, entweder post-pull, post-merge oder post-update setzen muss.

Ich bin aber nicht sicher, wie ich sehe, welche Dateien neu mit dem Pull hinzugefügt und wie diese Dateien zu kopieren.

Antwort

1

post-update ausgeführt wird, nachdem ein Druck auf den Remote-Repository durchgeführt wurde, wo Sie gedrückt. post-pull existiert nicht. Was Sie wollen, ist post-merge wenn Sie pull mit merge verwenden oder post-rewrite wenn Sie pull mit rebase verwenden. Aber beachten Sie, dass diese Haken sind nicht nur auf pull genannt, aber auf jedem merge, die jeweils auf jeder wie git commit --amend begehen Umschreiben und so weiter. Daher möchten Sie möglicherweise zusätzliche Bedingungen hinzufügen, um Ihre zusätzlichen Aktionen auszuführen.

Um die geänderten Dateien im post-merge Hook zu finden, müssen Sie normale Git-Befehle verwenden, wie git diff [email protected]{1} master --name-status oder ähnlich.

0

А einfache Art und Weise ist ein Alias ​​für git Befehle zu erstellen, die ein Wrapper-Skript aufruft. Das Wrapper-Skript führt den Befehl git aus und verwendet dann die angegebenen Parameter, z. Der Dateiname für den Kopiervorgang.