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.