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

Zurück zur Newsübersicht