2013-12-03 19 views
77

Ho un conto di un impianto Gitlab in cui ho creato il repository "ffki-startseite"Importare un progetto git esistente in GitLab?

Ora voglio clonare il repository git://freifunk.in-kiel.de/ffki-startseite.git in quel repository con tutti i commit e rami, in modo da poter iniziare a lavorare su di esso nel mio proprio ambito

Come posso importarlo?

+0

Una nuova funzionalità di gitlab, creare un progetto e quindi vai alla pagina del progetto. Qui vedrai le istruzioni di base. –

risposta

74

aggiungere il nuovo gitlab remoto al repository esistente e spingere:

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

Ho dovuto spingerlo con forza, perché ho già smanettato con gitLab: 'git push gitlab master -f'. Ora ho l'intero pronti contro termine con tutti i commit nel mio nuovo GitLab;) grazie – rubo77

+15

Non avresti bisogno di fare uno specchio? E se tu avessi altri rami oltre al master? – slhck

+7

sì, facendo come suggerisce OP, si ** perdono tutti i rami (tranne il master) e i tag ** – raveren

10

rake gitlab:import:repos potrebbe essere un metodo più adatto per l'importazione di massa:

  • copiare il repository nuda sotto repos_path (/home/git/repositories/group/repo.git). Il nome della directory deve terminare con .git e trovarsi in uno spazio dei nomi di gruppo o utente.
  • corsa bundle exec rake gitlab:import:repos

Il proprietario sarà il primo amministratore, e un gruppo otterrà creato se non è già esistente.

Consulta anche: How to import an existing bare git repository into Gitlab?

+0

Per coloro che potrebbero essere confusi, il repository nudo è il repository solitamente posizionato nella posizione centralizzata (ad esempio github) che NON contiene la cartella .git nella directory principale del repository. Questa è solo una comoda opzione se si ha accesso al server in cui è archiviato il repository nudo. Altrimenti la risposta di @Raveren è l'opzione migliore. – TinkerTenorSoftwareGuy

102

ero in grado di esportare completamente il mio progetto insieme a tutti i commit, rami e tag per gitlab tramite i seguenti comandi eseguiti localmente sul mio computer:

per illustrare il mio Ad esempio, userò https://github.com/raveren/kint come repository di origine che voglio importare in gitlab. Ho creato un progetto vuoto denominato Kint (sotto namespace raveren) in gitlab in anticipo e mi ha detto che il http git URL del progetto appena creato v'è http://gitlab.example.com/raveren/kint.git

I comandi sono OS agnostico.

In una directory nuova:

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 

Ora, se si dispone di un repository clonato a livello locale che si desidera continuare a utilizzare con il nuovo telecomando, basta eseguire i seguenti comandi * Ci:

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

* Si presume che non è stato rinominato il master remoto da origin, altrimenti, modificare le prime due righe per rifletterlo.

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/* 

E 'meglio farlo tramite ssh, https potrebbero non funzioneranno

3

Questo è un semplice mossa un repo nella nuova posizione. Io uso questa sequenza per tutto il tempo. Con --bare non verranno visualizzati file di origine.

Aprire Git Bash.
Creare un clone del repository.

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

Mirror-push al nuovo repository.

cd old-repository.git 

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

Rimuovere il repository locale temporanea creata al passaggio 1.

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

Per mantenere tutti i tag E FILIALI

Basta semplicemente eseguire il comando in un 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 
Problemi correlati