Einzelheiten hängen von können, welchem Szenario sind Sie auf (entweder das Web/Mobile/Desktop-Anwendung oder Bibliothek ist oder was auch immer). Aber der allgemeine Ansatz ist nicht automatisch generierten Zeug in Ihrem Repository zu halten.
Stattdessen sollten Sie eine Reihe von Skripten/Werkzeuge zur Verfügung stellt betrachten, die es Entwicklern ermöglicht aus sauberen handschriftlichen Quellen Arbeitsumgebung „auszupacken“.
Wenn Sie Artefakte Ihrer Arbeit an Kunden übergeben möchten, indem Sie git push
tun, können Sie ein CI-Tool in Erwägung ziehen, in dem Sie alle erforderlichen Aktionen zum Erstellen von zu liefernden Elementen aus Quellen schreiben.
In einem einfachsten Ansatz (wenn aus irgendeinem Grund CI-System nicht anwendbar ist) können Sie Skript-Aktion in post-receive
Remote-Hook-Skript.
Einige Referenzen:
githooks manpage
Setting up Push-to-Deploy with git
Should I store generated code in source control
aktualisieren
I Wenn Sie sich für diese Methode entschieden haben, sollten Sie einen Ansatz wählen, der es Ihnen ermöglicht, eine exakte Umgebung von jeder Version in der Vergangenheit zu reproduzieren. Dies trifft meistens auf Abhängigkeiten zu - im Falle von Ruby sollten Sie Gemfile.lock
zu Ihrem Repo committen, im Falle eines Knotens - sollten Sie npm shrinkwrap
oder ein ähnliches Tool verwenden, um sicherzustellen, dass Sie genau die gleiche Umgebung reproduzieren können, die früher verwendet wurde (das könnte vor über einem Jahr veröffentlicht worden sein und seitdem haben Sie Dutzende neue Versionen oder Ihre Abhängigkeiten) Version Ihrer App/Site oder was auch immer Debugging erlauben.
Gute Praxis ist hier Tags in Git und Einbetten von Informationen in lieferbaren verwenden, die Sie erlauben, genauen zu begehen zu finden, dass verwendet wurde, um es zu produzieren.
Können Sie mir bitte weitere Informationen teilen, was Sie gemeint „' git push' [...] können für den Einsatz Zwecke verwendet werden“zu sagen. Auf welches Szenario beziehen Sie sich? Ist es Web/Mobile/Desktop-Anwendung usw.? –
@MaxK Ich beziehe mich auf [dies] (https://gist.github.com/thomasfr/9691385) Szenario. Ich habe es selbst ausprobiert und es hat sehr gut funktioniert. –
Ah, also hast du schon 'post-receive' versucht - das ist gut, siehe meine Antwort unten. –