2013-12-03 3 views
77

Ich habe ein Konto einer Gitlab Installation, wo ich das Repository „ffki-startseite“ erstelltImportieren Sie ein vorhandenes Git-Projekt in GitLab?

Jetzt möchte ich das Repository git://freifunk.in-kiel.de/ffki-startseite.git in das Repository mit allen Commits und Zweige klonen, so kann ich in arbeite daran beginnen meine eigener Umfang.

Wie kann ich es importieren?

+0

Ein neues Feature von gitlab, Projekt erstellen und dann Gehe zur Projektseite. Hier sehen Sie grundlegende Anweisungen. –

Antwort

74

Fügen Sie den neuen Gitlab remote zu Ihrem bestehenden Repository und drücken:

git remote add gitlab url-to-gitlab-repo 
git push gitlab master 
+0

Ich musste es mit Gewalt durchdrücken, weil ich schon in gitLab herumgespielt habe: 'git push gitlab master -f'. Jetzt habe ich das ganze Repo mit allen Commits in meinem neuen GitLab;) Danke – rubo77

+15

Müsstest du nicht einen Spiegel machen? Was wäre, wenn Sie andere Zweige als Master hätten? – slhck

+7

ja, indem Sie tun, wie OP schlägt vor, Sie ** verlieren alle Zweige (außer Master) und Tags ** – raveren

10

rake gitlab:import:repos könnte eine geeignete Methode für die Massenimport sein:

  • das blanke Repository unter repos_path kopieren (/home/git/repositories/group/repo.git). Der Verzeichnisname muss in .git enden und sich unter einem Gruppen- oder Benutzernamen befinden.
  • Lauf bundle exec rake gitlab:import:repos

Der Eigentümer wird die erste admin, und eine Gruppe, wenn nicht bereits vorhanden bekommen erstellt.

Siehe auch: How to import an existing bare git repository into Gitlab?

+0

Für diejenigen, die verwirrt sein könnten, ist das bare-Repository das Repository, das normalerweise am zentralen Speicherort (z. B. github) vorhanden ist und den .git-Ordner im Stammverzeichnis des Repositorys NICHT enthält. Dies ist nur eine bequeme Option, wenn Sie Zugriff auf den Server haben, auf dem das bare Repository gespeichert ist. Ansonsten ist die Antwort von @Raveren die beste Option. – TinkerTenorSoftwareGuy

102

konnte ich voll zusammen mit allen Commits, Zweigen und Tags mein Projekt exportiert über folgende Befehle Gitlab lokal auf meinem Computer laufen:

Zur Veranschaulichung meines Beispiel: Ich verwende https://github.com/raveren/kint als Quell-Repository, das ich in gitlab importieren möchte. Ich habe ein leeres Projekt Kint (unter Namespace raveren) in Gitlab vorher genannt und es hat mir die http git URL des neu erstellten Projekts gibt es http://gitlab.example.com/raveren/kint.git

Die Befehle sind OS Agnostiker.

In einem neuen Verzeichnis:

git clone --mirror https://github.com/raveren/kint 
cd kint.git 
git remote add gitlab http://gitlab.example.com/raveren/kint.git 
git push gitlab --mirror 

Nun, wenn Sie einen lokal geklonte Repository, das Sie mit der neuen Fernbedienung verwenden halten wollen, führen Sie einfach die folgenden Befehle * gibt:

git remote remove origin 
git remote add origin http://gitlab.example.com/raveren/kint.git 
git fetch --all 

* Dies setzt voraus, dass Sie Ihren Remote-Master nicht von origin umbenannt haben, anderenfalls ändern Sie die ersten zwei Zeilen, um es widerzuspiegeln.

3
git clone --mirror [email protected]:username/repo-name.git 

git remote add gitlab ssh://[email protected]/username/repo.git 

git push -f --tags gitlab refs/heads/*:refs/heads/* 

Es ist besser, es über ssh zu tun, könnten die https wird

3

nicht arbeiten Dies ist eine grundlegende Repo-Bewegung eine neue Lage. Ich benutze diese Sequenz alle Zeit. Mit --bare werden keine Quelldateien angezeigt.

Offene Git Bash.
Erstellen Sie einen leeren Klon des Repositorys.

git clone --bare https://github.com/exampleuser/old-repository.git 

Mirror-Push auf das neue Repository.

cd old-repository.git 

git push --mirror https://github.com/exampleuser/new-repository.git 

Entfernen Sie die temporäre lokale Repository 1.

cd .. 
rm -rf old-repository.git 
1

in Schritt erstellt halten ALLE TAGS UND BRANCHEN

einfach nur diesen Befehl ausführen in ein existing Git repository

cd existing_repo 
git remote add gitlab [email protected]:hutber/kindred.com.git 
git push -u gitlab --all 
git push -u gitlab --tags 
Verwandte Themen