2009-08-03 13 views
369

Mam swój projekt na GitHub w pewnym miejscu, [email protected]:myname/oldrep.git.Zdalne źródło już istnieje w "git push" do nowego repozytorium

Teraz chcę przekazać cały mój kod do nowego repozytorium w innej lokalizacji, [email protected]:newname/newrep.git.

użyłem komendy:

git remote dodać pochodzenie [email protected]: myname/oldrep.git

ale ja otrzymuję to:

śmiertelne: zdalne miejsce już istnieje.

+4

Daj wyjście polecenia $> git remote -v show – sykora

+0

możliwy duplikat [Github "fatal: zdalne źródło już istnieje"] (http://stackoverflow.com/questions/10904339/github-fatal-remo te-origin-already-exists) –

+0

Dobrym sposobem jest użycie ** "import z innego repozytorium" ** na dole twojego nowego utworzonego repozytorium, jeśli znasz adres URL starego. –

Odpowiedz

573

Otrzymujesz ten błąd, ponieważ "origin" nie jest dostępny. "origin" to konwencja, która nie jest częścią polecenia. "origin" to lokalna nazwa zdalnego repozytorium.

Na przykład można też napisać:

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

Zobacz instrukcję:

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

Aby usunąć zdalnego repozytorium należy wpisać:

git remote rm origin 

Znowu "pochodzenie" jest nazwą zdalnego repozytorium, jeśli chcesz usunąć „upstream” remote:

git remote rm upstream 
+6

"git remote rm origin" nie działało ode mnie, jeśli to nie działa, spróbuj sprawdzić za pomocą "git remote -v", to pokaże ci, czy twoje pochodzenie ma zestaw adresów URL, jeśli nie jest prawdopodobne zrobiłeś init na miejscu i próbujesz go odepchnąć, i zrobiłeś błąd podobny do mnie). Następnie wykonaj odpowiedź RobinH: git remote set-url origin [email protected]: nazwa_użytkownika/projectname.git –

+1

sprawdź [tę odpowiedź] (http://stackoverflow.com/questions/13572191/cannot-remove-remote-origin) w aby zmusić adres URL. – srodriguex

+0

"git remote rm origin" działał jak czar, cudownie! :) puhh, jestem nowy w terminologii git, więc było to większe wyszukiwanie, ale twoja odpowiedź bardzo mi pomogła. :) dziękuję! –

3

Można również zmienić nazwę repozytorium, które chcesz przesunąć w pliku REPOHOME/.git/config

(gdzie REPOHOME jest ścieżka do lokalnego klonu repozytorium).

12

Możesz po prostu edytować swój plik konfiguracyjny w edytorze tekstu.

W ~/.gitconfig trzeba umieścić w coś jak następujące:

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

[github] 
     user = myname 
     token = ff44ff8da195fee471eed6543b53f1ff 

W pliku oldrep/.git/config (w pliku konfiguracyjnym repozytorium):

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

Jeśli istnieje sekcja zdalna w pliku konfiguracyjnym twojego repozytorium i adres URL pasuje, musisz tylko dodać konfigurację wypychania. Jeśli używasz publicznego adresu URL do pobierania, możesz umieścić adres URL do wypychania jako "pushurl" (ostrzeżenie: wymaga to właśnie wydanej wersji Git 1.6.4).

63

Jeśli błędnie nazwany lokalną nazwę jako „pochodzenia”, można usunąć go z następujących czynności:

git remote rm origin 
+0

Co oznacza "błędnie nazwał nazwę lokalną jako" pochodzenie "" faktycznie oznacza? Możesz wyjaśnić to szczegółowo? @Ozgur –

+0

Może to oznaczać, że dodano zdalnego pochodzenia, który nie wskazuje repozytorium git. Dlatego jeśli planujesz przesłać wszystkie zmiany do wzorca, git będzie narzekał, że zdalne miejsce pochodzenia nie jest repozytorium git. –

8

Nie trzeba usunąć istniejące „pochodzenie” zdalny, wystarczy użyć nazwy inne niż "origin" dla zdalnego dodania, np

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

211

Dotychczasowe rozwiązania wydają się ignorować pochodzenie, i sugerują one jedynie używać innej nazwy. Jeśli chcesz po prostu użyć git push origin, czytaj dalej.

Problem pojawia się, ponieważ następuje niewłaściwa kolejność konfiguracji Git. Być może już dodałeś "git origin" do swojej konfiguracji .git.

Można zmienić zdalne źródło w konfiguracji Git z następującą linię:

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

Komenda ta wyznacza nowy adres URL repozytorium Git chcesz push. Ważne jest, aby podać własny nazwa i Nazwa_projektu

+7

Dzięki, dokładnie to, co musiałem zrobić :) – winkbrace

+0

To było dla mnie. Ale to, co naprawdę pomogło mi w rozwiązaniu tego problemu, było spowodowane tym, że korzystałem z portableGit, który został zainstalowany z Gihub dla Windows. Znalazłem rozwiązanie [tutaj] (http://stackoverflow.com/a/17351255/1128695) – PerseP

+1

Właśnie tego potrzebowałem – bjornhol

6

Mam ten sam problem, i tutaj jest jak naprawiłem go po robi rozeznanie:

  1. Pobierz GitHub for Windows lub użyć czegoś podobnego, który zawiera powłokę:
  2. Otwórz Git Shell z menu zadań. Spowoduje to otwarcie powłoki Power, w tym poleceń Git.
  3. W powłoce przejdź do starego repozytorium, np. cd C:\path\to\old\repository
  4. Pokaż status starego repozytorium

  5. Teraz usunąć zdalnego repozytorium z lokalnym repozytorium za pomocą

    git remote rm origin 
    
  6. spróbuj ponownie od kroku 4. Należy pokazać origin tylko, zamiast pobierania i przesuwania ścieżki.

  7. Po odłączeniu starego zdalnego repozytorium można dodać nowe zdalne repozytorium. Użyj poniższego, aby połączyć się z nowym repozytorium.

Uwaga: W przypadku korzystania Bitbucket, by stworzyć projekt na Bitbucket pierwszy. Po utworzeniu Bitbucket wyświetli wszystkie wymagane polecenia Git, które popchną twoje repozytorium do odległego, wyglądającego podobnie do następnego fragmentu kodu. Jednak działa to również w przypadku innych repozytoriów.

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 

To wszystko.

5

Miałem ten sam problem, gdy po raz pierwszy skonfigurowałem, używając Bitbucket.

Mój problem polegał na tym, że musiałem zmienić pochodzenie słowa na coś, co zdefiniowałem samodzielnie. Użyłem nazwy aplikacji. A więc:

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

Powinieneś zmienić nazwę zdalnego repozytorium na coś innego.

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

do

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

myślę, że to powinno działać.

Tak, są one przeznaczone do inicjowania repozytorium i dodania nowego pilota. Wystarczy zmiana nazwy.

0

Może się to również zdarzyć, gdy zapomnisz wykonać pierwsze zatwierdzenie.

7

METHOD1->

Od pochodzenia istnieją już usunąć.

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

METHOD2->

Można także zmienić istniejący zdalnego repozytorium URL przez -> git remote ustawiony URL

Jeśli aktualizujesz używać HTTPS

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

Jeśli aktualizujesz do używania SSH

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

Jeśli spróbujesz zaktualizować nieistniejący pilot, otrzymasz komunikat o błędzie. Uważaj więc na to.

METHOD3->

Użyj polecenia git remote zmienić nazwę, aby zmienić nazwę istniejącego pilota. Istniejąca nazwa zdalna, na przykład początek.

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

Aby sprawdzić pilota nowego Imieniny>

git remote -v 

Jeśli nowy do Git spróbować tej Tutorial>

TRY GIT TUTORIAL