Ein git-Repository spiegeln

Möchte man ein git-Repository in einer exakten Kopie beispielsweise auf GitHub hosten, kann man dies recht einfach anstellen. Als erstes klont man sich das entsprechende Repository mit der Option –mirror und wechselt in das Verzeichnis. Ich werde das einfach mal am Beispiel EasyTemplate vorstellen.

git clone --mirror git@gitlab.code-x.de:magento-project/easytemplate.git
cd easytemplate.git/

Jedes git-Repo hat immer zwei URLs hinterlegt: fetch und push. Welche das aktuell sind, findet man sehr einfach heraus:

git remote -v
origin	git@gitlab.code-x.de:magento-project/easytemplate.git (fetch)
origin	git@gitlab.code-x.de:magento-project/easytemplate.git (push)

Ok soweit. Jetzt möchte ich die Push-Url abändern – das geht einfach mit „set-url“. Unterschied ist hier, dass wir noch –push mitgeben. Somit wird nur die Push-Url geändert:

git remote set-url --push origin git@github.com:webguys-de/EasyTemplate.git

Und schon ist alles fertig konfiguriert. Um einen Abgleich durchzuführen, müssen wir nun lediglich ein fetch und ein push durchführen:

git fetch -p origin
git push --mirror

Das ganze könnte man natürlich auch durch ein Shellscript anstoßen, welches beispielsweise durch einen hook angestoßen wird.


Beitrag veröffentlicht

in

von

Schlagwörter: