2009-08-03 5 views
369

Ho il mio progetto su GitHub in qualche luogo, [email protected]:myname/oldrep.git.L'origine remota esiste già su "git push" in un nuovo repository

Ora voglio trasferire tutto il mio codice in un nuovo repository in un'altra posizione, [email protected]:newname/newrep.git.

ho usato il comando:

git add remota origine [email protected]: myname/oldrep.git

ma sto ricevendo questo:

fatale: l'origine remota esiste già.

+4

Dare l'output del comando $> git remote -v mostra – sykora

+0

possibile duplicato di [Github "fatale: origine remota già esistente"] (http://stackoverflow.com/questions/10904339/github-fatal-remo te-origin-already-exists) –

+0

Un buon metodo è usare ** "import da un altro repository" ** nella parte inferiore del tuo nuovo repository creato, se conosci l'URL di quello vecchio. –

risposta

573

Si riceve questo errore perché "origine" non è disponibile. "origine" è una convenzione che non fa parte del comando. "origine" è il nome locale del repository remoto.

Per esempio si potrebbe anche scrivere:

git remote add myorigin [email protected]:myname/oldrep.git 
git remote add testtest [email protected]:myname/oldrep.git 

consultare il manuale:

http://www.kernel.org/pub/software/scm/git/docs/git-remote.html

Per rimuovere un repository remoto si entra:

git remote rm origin 

Again "origine" è il nome del repository remoto se si desidera rimuovere il "monte" a distanza:

git remote rm upstream 
+6

"git remote rm origin" non ha funzionato da me, se non funziona per te prova a controllare con "git remote -v" questo ti mostrerà se la tua origine ha un url set, se non è probabile hai fatto il init in locale e stai provando a spingerlo in remoto, e hai fatto un passo falso come me). Quindi segui la risposta di RobinH: git remote set-url origin [email protected]: username/projectname.git –

+1

controlla [questa risposta] (http://stackoverflow.com/questions/13572191/cannot-remove-remote-origin) in per forzare l'url. – srodriguex

+0

"git remote rm origin" ha funzionato come un incanto, meraviglioso! :) puhh, sono nuovo della terminologia di git quindi è stata una ricerca più grande, ma la tua risposta mi ha aiutato molto. :) grazie! –

3

si potrebbe anche modificare il nome del repository che si desidera spingere al file REPOHOME/.git/config

(dove REPOHOME è il percorso clone locale del repository).

12

È possibile modificare semplicemente il file di configurazione in un editor di testo.

Nella ~/.gitconfig è necessario mettere in qualcosa come il seguente:

[user] 
     name = Uzumaki Naruto 
     email = [email protected] 

[github] 
     user = myname 
     token = ff44ff8da195fee471eed6543b53f1ff 

Nel file oldrep/.git/config (nel file di configurazione del repository):

[remote "github"] 
     url = [email protected]:myname/oldrep.git 
     push = +refs/heads/*:refs/heads/* 
     push = +refs/tags/*:refs/tags/* 

Se c'è una sezione remota nel file di configurazione del repository e le corrispondenze URL, è necessario solo aggiungere la configurazione push. Se si utilizza un URL pubblico per il recupero, è possibile inserire l'URL per spingere come 'pushurl' (avviso: richiede la versione 1.6.5 di Git appena rilasciata).

63

Se avete erroneamente chiamato il nome locale di "origine", è possibile rimuovere con il seguente:

git remote rm origin 
+0

Che cosa significa "erroneamente chiamato il nome locale come" origine "" in realtà significa? Puoi spiegarlo in dettaglio? @Ozgur –

+0

Ciò potrebbe significare che hai aggiunto l'origine remota che non punta a un repository git. Pertanto, se si prevede di inviare tutte le modifiche al master, il git si lamenterà dicendo che l'origine remota non è un repository git. –

8

Non è necessario rimuovere il vostro "origine" esistente a distanza, basta usare un nome diverso da "origine" per il tuo add remoto, ad es

git aggiungere remoto github [email protected]: myname/oldrep.git

211

Le soluzioni precedenti sembrano ignorare l'origine, e suggeriscono solo di usare un altro nome. Quando vuoi semplicemente usare git push origin, continua a leggere.

Il problema appare perché viene seguito un ordine errato di configurazione Git. Potresti aver già aggiunto un 'git origin' alla tua configurazione .git.

È possibile modificare l'origine remota nella configurazione Git con la seguente riga:

git remote set-url origin [email protected]:username/projectname.git 

Questo comando imposta un nuovo URL per il repository Git si vuole spingere a. Importante è inserire la tua nome utente e projectname

+7

Grazie, esattamente quello che dovevo fare :) – winkbrace

+0

Questo lo confuse per me. Ma quello che mi ha veramente aiutato con questo problema è stato perché ho user portableGit che è stato installato con Gihub per Windows. Ho trovato la soluzione [qui] (http://stackoverflow.com/a/17351255/1128695) – PerseP

+1

Proprio quello di cui avevo bisogno – bjornhol

6

Ho avuto lo stesso problema, ed ecco come ho riparato dopo aver fatto qualche ricerca:

  1. Scarica GitHub for Windows o usare qualcosa di simile, che include una shell
  2. Aprire Git Shell dal menu delle attività. Questo aprirà una power shell con comandi Git.
  3. Nella shell, passare al vecchio repository, ad es. cd C:\path\to\old\repository
  4. Mostra lo stato del vecchio repository

  5. Ora rimuovere il repository remoto dal repository locale utilizzando nuovamente

    git remote rm origin 
    
  6. Verifica con passo 4. Va mostrare origin solo, anziché il percorso prendere e spingere.

  7. Ora che il vecchio repository remoto è disconnesso, è possibile aggiungere il nuovo repository remoto. Utilizzare quanto segue per connettersi al nuovo repository.

Nota: Nel caso in cui si sta utilizzando Bitbucket, si potrebbe creare un progetto sul Bitbucket prima. Dopo la creazione, Bitbucket mostrerà tutti i comandi Git richiesti per spingere il repository su remoto, che assomiglia al prossimo snippet di codice. Tuttavia, questo funziona anche per altri repository.

cd /path/to/my/repo # If haven't done yet 
git remote add mynewrepo https://[email protected]/team-or-user-name/myproject.git 
git push -u mynewrepo master # To push changes for the first time 

Questo è tutto.

5

Ho avuto lo stesso problema quando ho iniziato a utilizzare Bitbucket.

Il mio problema era che avevo bisogno di cambiare la parola origine per qualcosa di auto-definito. Ho usato il nome dell'applicazione. Quindi:

git remote add AppName https://[email protected]/somewhere/something.git 
2

È necessario modificare il nome dell'archivio remoto in qualcos'altro.

git remote add origin [email protected]:myname/oldrep.git 

a

git remote add neworigin [email protected]:myname/oldrep.git 

Penso che questo dovrebbe funzionare.

Sì, questi sono per init repository e aggiunta di un nuovo telecomando. Solo con un cambio di nome.

0

Ciò può verificarsi anche quando si dimentica di eseguire un primo commit.

7

METHOD1->

Dal origine esiste già rimuoverlo.

git remote rm origin 
git remote add origin https://github.com/USERNAME/REPOSITORY.git 

METHOD2->

si può anche cambiare esistente URL remoto repository -> git remote set-url

Se si sta aggiornando l'utilizzo di HTTPS

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git 

Se si sta aggiornando per utilizzare SSH

git remote set-url origin [email protected]:USERNAME/REPOSITORY.git 

Se si tenta di aggiornare un telecomando che non esiste, si riceverà un errore. Quindi stai attento a questo.

METHOD3->

Utilizzare il git rinomina remota per rinominare un telecomando esistente. Un nome remoto esistente, ad esempio, origine.

git remote rename origin startpoint 
# Change remote name from 'origin' to 'startpoint' 

Per verificare nuovo nome- del telecomando>

git remote -v 

Se nuovi a Git provare questo tutorial->

TRY GIT TUTORIAL