Artikelformat

Braindump: Git Commits von einem Repository in ein anderes übernehmen

Heute ist es wieder einmal Zeit für einen Braindump. Ich hatte in einem Projekt das Problem, dass der Branch aus einem Repository in ein fremdes Repository übernommen werden sollte. Da so etwas zwar nicht sehr oft aber dennoch vorkommen kann, hier nun eine kleine Erklärung.

Nehmen wir an, es gibt ein Repository im Verzeichnis A mit allen Branches und ein Verzeichnis B mit dem neuen Repository. Zuerst sollte man schauen, dass beide Repositories auf dem aktuellen Stand sind. Dann wechselt man ins Verzeichnis B und legt dort einen neuen Branch (hier: dump) an, den man später benutzt, um die Commits zu sammeln.

cd B
git checkout -b dump

Nun verbindet man die beiden Repositories, wobei man das Repository in Verzeichnis A als remote von Verzeichnis B angibt. Anschließend kann man per fetch alle Informationen rein laden und per merge den betreffenden Branch in den dump Branch übernehmen. Alternativ geht natürlich auch ein cherry-pick.

git remote add other ../B
git fetch other
git merge other/mybranch

Jetzt kann man die Verbindung zum remote-Branch lösen und schon ist man fertig.

git remote rm other

Mit dem dump-Branch kann man dann genauso arbeiten, wie man es von einem normalen Branch gewohnt ist. In meinem Fall habe ich dann die Commits in einen dev-Branch gemerged und darauf aufbauend weiter gearbeitet.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.