Github „fatalny: zdalne pochodzenie już istnieje”


465

Próbuję śledzić samouczek Michaela Hartla, ale natknąłem się na błąd.

Zapisałem się na Github, wydałem nowy klucz SSH i utworzyłem nowe repozytorium. Ale kiedy wprowadzam następny wiersz do terminala, pojawia się następujący błąd:

Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.

Zastanawiałem się tylko, czy ktoś inny napotkał ten problem?


Jeśli jeszcze utworzyłeś repozytorium git, spójrz na .git/configplik, aby zobaczyć, czy pochodzenie nie jest jeszcze zadeklarowane.
Denys Séguret

3
Napotkałem ten sam problem i użyłem polecenia „git remote rm origin”, a następnie użyłem polecenia git remote add origin URL.
Akhzar Nazir

@AkhzarNazir proszę dodać to jako odpowiedź. To zadziałało dla mnie.
Pamela Sillah

Odpowiedzi:


893

TL; DR powinieneś zaktualizować istniejącego pilota:

$ git remote set-url origin git@github.com:ppreyer/first_app.git

Długa wersja:

Jak wskazuje komunikat o błędzie, istnieje już pilot skonfigurowany o tej samej nazwie. Możesz więc dodać nowego pilota o innej nazwie lub zaktualizować istniejącego, jeśli go nie potrzebujesz:

Aby dodać nowy pilot, wywoływany na przykład githubzamiast origin(który oczywiście już istnieje w systemie), wykonaj następujące czynności:

$ git remote add github git@github.com:ppreyer/first_app.git

Pamiętaj jednak, że wszędzie w samouczku widać „pochodzenie” , należy go zastąpić „github” . Na przykład $ git push origin masterpowinno być teraz $ git push github master.

Jeśli jednak chcesz zobaczyć, originco już istnieje, możesz to zrobić $ git remote -v. Jeśli uważasz, że to przez jakiś błąd, możesz to zaktualizować w następujący sposób:

$ git remote set-url origin git@github.com:ppreyer/first_app.git

5
Dlaczego pochodzenie miałoby istnieć w jego nowym repozytorium? Powinien rozwiązać problem (upewniając się, że na przykład pochodzenie jest poprawnym aliasem github) zamiast tworzyć nowy alias, który musiałby przypomnieć.
Denys Séguret,

1
Ok, zadziałało, ale kiedy przechodzę do następnego kroku i wprowadzam git push -u origin master do terminala, pojawia się następujący błąd: BŁĄD: nie znaleziono repozytorium. fatal: Odległy koniec nieoczekiwanie rozłączył się Co to znaczy?
ppreyer

Co robi git remote -vwyjścia? Możesz też spróbować git push origin master?
Agis

16
git remote rm originnie całkiem działało. Wystąpił błąd: Nie można usunąć sekcji konfiguracji „remote.origin”
Andrew Savinykh

20
@zespri: usegit remote set-url --add origin git@github.com/username/repo.git
eduncan911

342

W skrócie,

git remote rm origin
git remote add origin git@github.com:username/myapp.git

Pracował!

Twoje zdrowie!


czy ktoś może to wyjaśnić? git remote rm origin
Kick Buttowski

1
@ KickButtowski rm odnosi się do polecenia remove zastosowanego w * nix. To polecenie każe gitowi „usunąć” dane zdalnego serwera o nazwie „origin”.
okradać

Nie musisz tego robić w 2 krokach, jeśli możesz to zrobić w 1. Zobacz moją odpowiedź.
Agis

37

Dla tych z was, którzy napotykają tak często występujący błąd „fatal: zdalne pochodzenie już istnieje.”, Lub gdy próbujesz usunąć pochodzenie i pojawia się „błąd: nie można usunąć sekcji konfiguracji remote.origin”, co musisz zrobić, to: ręcznie ustaw początek.

Wystąpił problem z POSH ~ Git dla Windows PowerShell (i GitHub dla Windows).

Natknąłem się na to, jak to często bywa, znowu podczas ustawiania mojej ośmiornicy. Oto jak to działa.

Najpierw sprawdź swoje piloty:

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin

Najpierw zauważysz, że moje pochodzenie nie ma adresu URL. Każda próba usunięcia, zmiany nazwy itp. Kończy się niepowodzeniem.

Więc zmień adres URL ręcznie:

git remote set-url --add origin https://github.com/eduncan911/eduncan911.github.io.git

Następnie możesz potwierdzić, że zadziałało, uruchamiając git remote -vponownie:

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin  https://github.com/eduncan911/eduncan911.github.io.git (fetch)
origin  https://github.com/eduncan911/eduncan911.github.io.git (push)

Naprawiono dziesiątki repozytoriów git, z którymi miałem problemy, GitHub, BitBucket GitLab itp.


2
To zadziałało dla mnie. Dzięki @ eduncan911. Instrukcje github zawierają polecenie „git init”, aby utworzyć nowe repozytorium w wierszu poleceń. Spowoduje to utworzenie zdalnego źródła bez adresu URL przy użyciu tego interfejsu PS.
mikekidder

Ach tak, to kolejna gotcha i dlaczego musisz to zrobić. +1 Może powinniśmy to zgłosić POSH Git na github.
eduncan911

Jak znaleźć adres URL podczas korzystania z gitlab?
Madmenyo

1
@MennoGouw Myślę, że to pytanie nie na temat; ale zwykle znajduje się na desce rozdzielczej / w domu Repo. Jest również w ustawieniach projektu.
eduncan911

36

Możesz zobaczyć, z jakimi zdalnymi repozytoriami skonfigurowano się do łączenia

git remote -v

To zwróci listę w tym formacie:

origin  git@github.com:github/git-reference.git (fetch)
origin  git@github.com:github/git-reference.git (push)

To może pomóc ci zrozumieć, na co wskazywał pierwotny „początek”.

Jeśli chcesz zachować zdalne połączenie, które widzisz za pomocą -v, ale nadal chcesz postępować zgodnie z samouczkiem Railsów bez konieczności pamiętania „github” (lub innej nazwy) dla repozytorium tutoriala, możesz zmienić nazwę swojego innego repozytorium za pomocą Komenda:

git remote rename [current name] [new name]

jak w:

git remote rename origin oldrepo

Powinieneś być w stanie wznowić samouczek.


34

Najpierw wykonaj:

git remote rm origin

następnie

git remote add origin https://github.com/your_user/your_app.git

i voila! Pracował dla mnie!


Dlaczego warto usunąć pochodzenie? Czy jest jakiś sposób, aby dodać coś zamiast pochodzenia?
Abhils

27

W szczególnym przypadku, gdy tworzysz nowe repozytorium, zaczynając od starego repozytorium, które wykorzystałeś jako szablon (Nie rób tego, jeśli nie jest to twój przypadek). Całkowicie usuń pliki git ze starego repozytorium, aby móc rozpocząć nowy:

rm -rf .git

A następnie zrestartuj nowe repozytorium git jak zwykle:

git init
git add whatever.wvr ("git add --all" if you want to add all files)
git commit -m "first commit"
git remote add origin git@github.com:ppreyer/first_app.git
git push -u origin master

13

Jeśli chcesz sprawdzić, które zdalne repozytoria połączyłeś z lokalnymi repozytoriami, oto cmd:

git remote -v

Teraz, jeśli chcesz usunąć zdalne repozytorium (powiedzmy, pochodzenie), możesz:

git remote rm origin

To bardziej przypomina komentarz niż odpowiedź. Przy nieco większym przedstawicielu będziesz mógł dodawać komentarze .
Nathan Tuggy,

@NathanTuggy Nie, to kompletna odpowiedź i, moim skromnym zdaniem, bardziej bezpośrednia niż najpopularniejsza w tym temacie.
daOnlyBG,

@ daOnlyBG: Nie jestem pewien, jak wyglądała odpowiedź, kiedy ją zobaczyłem, ponieważ było to przed komentarzami zamkniętymi w okresach karencji (i dlatego mogły być po cichu edytowane). Ale teraz, zgadzam się, jest dość kompletny.
Nathan Tuggy

@NathanTuggy Woah, nie wiedziałem, że kiedyś były ciche zmiany. To wyjaśnia.
daOnlyBG,

7

Ten komunikat o błędzie wskazuje, że masz już pilota w katalogu git. Jeśli jesteś zadowolony z tego pilota, możesz wypchnąć swój kod. Jeśli nie lub jeśli nie możesz naciskać:

git remote remove origin
git remote add origin git@github.com:ppreyer/first_app.git

Voilà!


7

Pojęcie remoteto po prostu adres URL zdalnego repozytorium.

originJest alias wskazując tym adresem. Dlatego zamiast pisać cały adres URL za każdym razem, gdy chcemy przekazać coś do naszego repozytorium, po prostu używamy tego aliasu i uruchamiamy:

git push -u origin master

Mówienie do git do pushnaszego kodu z naszego lokalnego mistrza oddziału do zdalnego pochodzenia repozytorium .

Za każdym razem, gdy klonujemy repozytorium , git domyślnie tworzy dla nas ten alias. Również za każdym razem, gdy tworzymy nowe repozytorium , po prostu tworzymy je samodzielnie.

Niezależnie od przypadku, zawsze możemy zmienić tę nazwę na dowolną, wykonując to:

git remote rename [current-name] [new-name]

Ponieważ jest on przechowywany po stronie klienta aplikacji git (na naszym komputerze), zmiana nie wpłynie na nic w naszym procesie programowania, ani w naszym zdalnym repozytorium. Pamiętaj, że jest to tylko nazwa wskazująca adres .

Jedyną rzeczą, która zmienia się tutaj poprzez zmianę nazwy aliasu, jest to, że musimy zadeklarować tę nową nazwę za każdym razem, gdy pchamy coś do naszego repozytorium.

git push -u my-remote-alias master

Oczywiście jedna nazwa nie może wskazywać na dwa różne adresy. Dlatego pojawia się ten komunikat o błędzie. Na origintwoim komputerze lokalnym jest już alias . Aby zobaczyć, ile masz aliasów i jakie one są, możesz zainicjować to polecenie:

git remote -v

Spowoduje to wyświetlenie wszystkich posiadanych aliasów oraz odpowiadających im adresów URL.

Możesz je również usunąć, jeśli chcesz to uruchomić:

git remote rm my-remote-alias

W skrócie:

  • dowiedz się, co już masz,
  • usuń je lub zmień nazwę,
  • dodaj swoje nowe aliasy.

Szczęśliwego kodowania.


5

jeśli już dodajesz projekt do innej pamięci, np. przesyłasz do github, a następnie przesyłasz do bitbucket, wyświetla się ten typ błędu.

Jak usunąć błąd: usuń plik git-hub w swoim projekcie, a następnie powtórz następujące kroki ...

git init       
git remote add origin git@bitbucket.org:Yourname/firstdemotry.git  
git add -A  
git commit -m 'Message'  
git push -u origin master  

5

Może się to również zdarzyć, jeśli uruchomisz polecenie w katalogu bez zainicjowania git. Jeśli tak jest, uruchom najpierw:

git init

4

do korzystania z git musisz być

korzeń

jeśli nie, użyj sudo

do usuwania pochodzenia:

git zdalnie usuń pochodzenie

dla dodania pochodzenia:

git zdalnie dodaj pochodzenie http: // giturl


3
  • $ git remote add origin git@gitlab.com:abc/backend/abc.git

    W tym poleceniu pochodzenie nie jest częścią polecenia, to po prostu nazwa twojego zdalnego repozytorium. Możesz użyć dowolnej nazwy.

    • Najpierw możesz sprawdzić, co zawiera, używając poniższego polecenia

    $ git remote -v

    To da ci taki wynik origin git@gitlab.com:abc/backend/abc.git (fetch) origin git@gitlab.com:abc/backend/abc.git (push) origin1 git@gitlab.com:abc/backend/abc.git (fetch) origin1 git@gitlab.com:abc/backend/abc.git (push)

    jeśli zawiera on twoją ścieżkę zdalnego repozytorium, możesz bezpośrednio przejść do niego bez ponownego dodawania źródła

    • Jeśli nie obsługuje ścieżki zdalnego repozytorium

    Następnie możesz dodać nowe pochodzenie o innej nazwie i używać go do naciskania $ git remote add origin101 git@gitlab.com:abc/backend/abc.git

    Lub możesz zmienić nazwę istniejącego źródła nazwy dodać swoje pochodzenie

    git remote rename origin destination

    ponownie strzelaj pod komendą

    $ git remote -v

    destination git@gitlab.com:abc/backend/abc.git (fetch) destination git@gitlab.com:abc/backend/abc.git (push)

    Zmieni to twoją istniejącą nazwę repozytorium, abyś mógł użyć tej nazwy pochodzenia

    Lub możesz po prostu usunąć swoje pierwotne pochodzenie i dodać swoje pochodzenie

    git remote rm destination


3

Spróbuj tego

  • cd istniejąca_repo
  • git zdalna zmiana nazwy pochodzenie stare pochodzenie

Bracie, dzięki, to jedyna rzecz, która zadziałała dla mnie.
Akshat Tamrakar

2

napotyka ten sam błąd podczas dodawania repozytorium do git hun przy użyciu git bash w systemie Windows

 git remote add origin https://github.com/axaysushir/netflix_page_clone.git

fatal: zdalne pochodzenie już istnieje.

fatal: remote origin already exists.

 ! [rejected]        master -> master (fetch first)

błąd: nie udało się przesłać niektórych odnośników do „ https://github.com/axaysushir/meditation_app_using_js.git

Zaktualizuj repozytorium, wykonując następujące polecenie

$ git remote set-url origin https://github.com/axaysushir/netflix_page_clone.git

następnie dodaj repozytorium za pomocą git remote add github zamiast git remote add origin

$ git remote add github https://github.com/axaysushir/netflix_page_clone.git

A następnie napisz następujące polecenie zamiast git push origin master, spowoduje to przesłanie twojego repozytorium do github

$ git push github master

2

zaktualizuj pochodzenie, jeśli istnieje już przy użyciu tego polecenia

git remote set-url origin https://github.com/SriramUmapathy/ReduxLearning.git

0

Pierwsza kontrola Aby zobaczyć, ile masz aliasów i jakie one są, możesz zainicjować to polecenie git remote -v

Następnie sprawdź, w którym repozytorium jesteś, a następnie spróbuj git remote set-url --add [Następnie link do repozytorium] git push -u origin master


0

Przynajmniej bash możemy zmusić wartość zwracaną kodu wyjścia polecenia do 0

Możesz usunąć stary pilot i dodać go ponownie

git remote remove $1 || true
git remote add $1 $2

0

Jeśli chcesz to zrobić za pomocą GUI, wykonaj następujące czynności:

  1. Upewnij się, że „ukryte pliki” są widoczne w folderze projektu
  2. Przejdź do katalogu .git
  3. Edytuj plik url w pliku config.txt i zapisz plik!
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.