Ich versuche, git subtree pull --squash
zu verwenden, um ein anderes Repo als Unterverzeichnis in meinem Repository zusammenzufassen, das docroot genannt wird. Dies geschieht in einem Jenkins-Arbeitsbereich, und ich versuche, einen flachen Klon meines Repos zu verwenden, da er zu einem Remote-Repo verschoben wird, um die Anwendung auszuführen. Es ist groß, wenn es mit voller Historie geklont wird, also versuche ich, es so klein wie möglich zu halten, wenn es herausgedrückt wird. Wenn ich versuche, ein git subtree pull
auf einem flachen Klon meines Repositorys auszugeben (geklont mit git clone --depth=1
), bekomme ich diesen Fehler:
Quetschzusammenführung nicht möglich: 'Docroot' wurde nie hinzugefügt.
Wenn ich --squash
nicht verwende, läuft es, aber es gibt Konflikte, die gelöst werden müssen, was nicht gut für einen CI-Job ist, der oft ausgeführt werden muss. Mein Ziel ist es, die kleinste mögliche Repo-Datei herauszubringen, um Speicherplatz zu sparen. Es wird mehrere Instanzen dieser Anwendung ausgegeben, so dass ich es so klein wie möglich halten möchte. Ich werde auch versuchen, das Repo kleiner zu machen, aber die größte Verringerung der Größe, die ich gesehen habe, ist möglich, indem ich einen flachen Klon verwende. Vielleicht gibt es einen besseren Weg, dies zu tun? Vielen Dank im Voraus.
Ich würde vorschlagen, dieses Problem zu umgehen, indem Sie das andere Repository, docroot
, als verwenden git Submodul im Original-Repository. Dies setzt voraus, dass der Repo docroot
unabhängig ist und keinen Code mit dem übergeordneten Repository teilt.
Auf diese Weise können Sie einen oberflächlichen Klon des übergeordneten Repos erstellen und sollten keine Konflikte mit dem vollständigen docroot
haben, das ausgecheckt wurde.
Tags und Links git jenkins deployment