Das aktuelle Projekt, an dem ich gerade arbeite, ist auf ein Git-Repository beschränkt. Mein aktuelles Arbeitsverzeichnis sieht ungefähr so aus:
%Vor%Wir haben einen Azure-Server eingerichtet, um automatisch alles bereitzustellen, das an den Deploy-Zweig unseres Repos gesendet wird. Das Ziel besteht also darin, src-Dateien zum Master und den Inhalt des Verzeichnisses dist in den Deploy-Zweig zu verschieben.
Was ich bisher gemacht habe, ist das Abzweigen von master, das Löschen des src-Ordners und das Verschieben des Inhalts des dist-Ordners in den root-Ordner, bevor Sie ihn zum Deployen bringen.
Ich weiß, dass wir im Idealfall separate Repos hätten, aber das ist derzeit keine Option. Gibt es einen einfacheren Weg, dies zu tun?
Der Befehl git-subtree funktioniert hervorragend dafür. Führen Sie in Ihrem master
Zweig:
Führen Sie diesen Befehl einfach jedes Mal aus, wenn Sie den Zweig deploy
aktualisieren möchten. Es wird jedes Commit im dist
-Unterverzeichnis (des aktuellen Zweigs - vermutlich master
) mit dem Stamm des deploy
-Verzweigs zusammenführen und ein vollständiges Commit-Protokoll führen. Beachten Sie, dass nur Änderungen im Unterverzeichnis dist
zusammengeführt werden. Wenn ein Commit Änderungen sowohl an das Unterverzeichnis dist
als auch an andere Dateien im Repo enthält, werden nur die Änderungen im Unterverzeichnis dist
eingeschlossen.
Der schwierige Teil ist die Installation. Wie ich es verstehe, ist der Befehl in Git 1.7.11 und höher enthalten. Es befindet sich jedoch in der Teilstruktur "contrib" und wird daher nicht standardmäßig installiert. Suchen Sie im Paketmanager Ihres Systems nach "git-subtree" und installieren Sie das Paket, falls es existiert. Wenn nicht, oder wenn Sie eine ältere Version von Git verwenden, ist der einfachste Weg, den ich gefunden habe, git-subtree vom des Autors zu installieren Repo .
%Vor%Sobald Sie es installiert haben, können Sie verschiedene coole Dinge damit tun, wie in der Dokumente .