GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Repos zwischen Instanzen von Gitlab migrieren

Ich bin kürzlich von gitolite zu gitlab und dem offiziellen Rake-Task gitlab:import:repos migriert hat bei mir funktioniert. Ich verwende Gitlab 6.1.0 (82f3446). Folgendes habe ich getan:

  • rsync Bare Repos von gitolite bis repositories/{group}/ . Achten Sie darauf, {repository} zu ersetzen durch den Namen des Gitolite-Repos und ändern Sie den Hostnamen Ihres Gitlab-Servers.

    rsync -rth --progress repositories/{repository}.git \
    [email protected]:/home/git/repositories/{group}/
    

    Hier, {group} ist der Name der Benutzergruppe, zu der das Repository hinzugefügt werden soll. Wenn Sie keine bestimmte Gruppe haben, wählen Sie root als Gruppenname.

  • Berechtigungen korrigieren – nur erforderlich, wenn rsync Benutzer ist nicht git :

    sudo chown -R git:git repositories/{group}/
    
  • cd ~/gitlab

  • Führen Sie die Rake-Aufgabe aus, um alle neuen Repositories zu importieren:

    bundle exec rake gitlab:import:repos RAILS_ENV=production
    

Wenn Sie sich jetzt als Administrator anmelden, finden Sie das neue Projekt hinzugefügt.

Weitere Informationen finden Sie unter "Bare-Repositories in GitLab-Projektinstanz importieren" unter http://{your-gitlab-server}/help/raketasks .

In Ihrem Fall können Sie sich bei Ihrem alten TKL-System anmelden und alle Bare-Repos mit der neuen Instanz synchronisieren, gefolgt von einem Import.


Eine Möglichkeit wäre:

  1. Klonen Sie das alte Repo von Gitlab auf eine Entwicklungsmaschine.
  2. Erstellen Sie ein leeres Repo auf dem neuen Gitlab.
  3. Fügen Sie das neue Repo als Remote auf dem Entwicklungscomputer hinzu.
  4. Schieben Sie alles zurück in das neue Repo.
  5. Entfernen Sie das alte Repo aus der Remote-Repos-Liste.

Um ein Remote namens newRepo zu erstellen, tun Sie:git remote add newRepo gitlab.localhost.com:User/newRepo.git (Ersetzen Sie die URL am Ende durch die für Ihr Repo)


Ich habe es praktisch auf folgende Weise gemacht, nachdem ich ChrisA Antwort gelesen hatte, was mir ein wenig Kopfschmerzen darüber bereitete, wie man es praktisch macht. Das Beispiel kopiert ein Repo von github nach gitlab, um Quelle und Ziel etwas klarer zu machen.

  1. Klonen Sie das alte Repo von Github auf einen Entwicklungscomputer (der ein reines Repo erstellt):

    $ git clone --mirror [email protected]:me/myrepo.git
    
  2. Erstellen Sie ein leeres Repo auf dem neuen Gitlab.

  3. Fügen Sie das neue Repo als Remote auf dem Entwicklungscomputer hinzu.

    $ cd myrepo.git
    $ git remote add newRepo [email protected]:me/myrepo.git
    
  4. Schieben Sie alles zurück in das neue Repo.

    $ git push --mirror newRepo
    

Das ist es.

Auf diese Weise wurden alle Zweige und Tags an das neue Ziel kopiert.

Sie können das geklonte Bare-Repository jetzt von Ihrem Entwicklungscomputer entfernen.


Linux
  1. Git-Autovervollständigung?

  2. Installieren Sie GitLab unter CentOS 7

  3. Installieren Sie GitLab unter Debian 10

  4. Installieren Sie GitLab auf Ubuntu 18.04

  5. Wie migriere ich die Konfiguration zwischen Computern mit unterschiedlicher Hardware?

So konfigurieren Sie ein Remote-Git-Repo unter Debian 11

So installieren Sie Gitlab unter FreeBSD

So migrieren Sie von CentOS 8 auf Rocky Linux.

So konfigurieren und verwalten Sie ein Remote-Git-Repository unter Linux

Öffnen Sie eine Datei direkt aus einem privaten GitLab-Repository

SSH zwischen EC2-Instanzen nicht zulässig