Migration Git Server nach Gitlab
von Andreas
git remote add (neuer Eintrag in config)
neben origin noch ein weiteren remote Eintrag erstellen.
# aus deinem bestehenden Repo
git remote add gitlab git@gitlab.example.com:gruppe/repo.git
master -> main (Gitlab)
Alles was master früher war nach main pushen. Das ist allerdings hier nur der master/main branch. Alle anderen müssen auch noch übertragen werden.
# master → main am Ziel abbilden
git push gitlab master:main
Tags nach Gitlab migrieren
Alle vorhandenen Tags migrieren
# Alle Branches & Tags rüber (ohne --mirror, löscht nichts am Ziel)
git push --tags gitlab
Alle anderen Branches außer master von remote holen
vom Server ggf holen und dann lokal auslesen
Wenn du die Remote-Branches als lokale Branches anlegen willst
git for-each-ref --format='%(refname:short)' refs/remotes/origin \
| sed 's#^origin/##' \
| grep -vE '^(HEAD|master|main)$' \
| xargs -I{} git branch -f {} origin/{}
Alle anderen Branches anzeigen lassen
Spätestens jetzt müssten lokal alle Remote Branchen als lokale VErsion sichtbar sein
Zeigt alle Branches lokal an.
git for-each-ref --format='%(refname:short)' refs/heads
Push aller anderen Branches (ohne master)
Alle Branches mit übernehmen. Dazu müssten sie aber vorher im remote drin gewesen sein. Nur lokale Branches gehen verloren.
for b in $(git for-each-ref --format='%(refname:short)' refs/heads | grep -v '^master$'); do
git push gitlab "$b"
done
# LFS (falls genutzt)
Optionaler Schritt.
# LFS (falls genutzt)
git lfs push --all gitlab
gitlab auf orgin übertragen
# Zuerst entfernst du den alten origin:
git remote remove origin
# Dann benennst du gitlab in origin um:
git remote rename gitlab origin
# Prüfen, ob alles passt
git remote -v
# naoch auf main statt master per default zeigen
git switch main
