Zdalne pochodzenie już istnieje w git push do nowego repozytorium


548

Mam projekt na GitHub w pewnym położeniu git@github.com:myname/oldrep.git.

Teraz chcę naciskać wszystkie moje kod do nowego repozytorium w jakimś innym miejscu, git@github.com:newname/newrep.git.

Użyłem polecenia:

git remote add origin git@github.com:myname/oldrep.git

ale otrzymuję to:

fatal: zdalne pochodzenie już istnieje.


6
Podaj dane wyjściowe polecenia $> git remote -v show
sykora


Dobrym sposobem jest użycie opcji „importuj z innego repozytorium” na dole nowo utworzonego repozytorium, jeśli znasz adres URL starego.
JW.ZG

Podobne pytanie zostało zadane tutaj: stackoverflow.com/questions/2432764/…
jciloa 27.09.16

1
Jeśli chcesz zachować oryginalny pilot, możesz po prostu użyć innej nazwy git remote add origin2 ...., ale jeśli musisz tylko nacisnąć raz bez modyfikowania konfiguracji repo, możesz to zrobić git push git@github.com:user/another-project.git master:master.
ccpizza

Odpowiedzi:


870

Otrzymujesz ten błąd, ponieważ „pochodzenie” jest niedostępne. „pochodzenie” to konwencja nie będąca częścią polecenia. „origin” to lokalna nazwa zdalnego repozytorium.

Na przykład możesz także napisać:

git remote add myorigin git@github.com:myname/oldrep.git  
git remote add testtest git@github.com:myname/oldrep.git

Zobacz instrukcję:

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

Aby usunąć zdalne repozytorium, wprowadź:

git remote rm origin

Ponownie „origin” to nazwa zdalnego repozytorium, jeśli chcesz usunąć pilota „upstream”:

git remote rm upstream

8
„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, czy twoje pochodzenie ma ustawiony adres URL, jeśli nie jest prawdopodobne, że zrobiłem init lokalnie i próbuję go odepchnąć zdalnie, i popełniłem błąd tak jak ja). Następnie postępuj zgodnie z odpowiedzią RobinH: git remote set-url origin git@github.com: nazwa użytkownika / nazwa projektu.git
Clarence Liu

1
sprawdź tę odpowiedź , aby wymusić url.
srodriguex

„Git Remote rm origin” działało jak urok, cudownie! :) puhh, jestem nowy w terminologii git, więc to było większe wyszukiwanie, ale twoja odpowiedź bardzo mi pomogła. :) Dziękuję Ci!
Martin Pfeffer,

3
git push -u origin master --force
Ronnie Royston

--force jest rozwiązaniem!
twórca

260

Poprzednie rozwiązania wydają się ignorować pochodzenie i sugerują jedynie użycie innej nazwy. Kiedy chcesz tylko używać git push origin, czytaj dalej.

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

Możesz zmienić zdalne źródło w konfiguracji Git za pomocą następującego wiersza:

git remote set-url origin git@github.com:username/projectname.git

To polecenie ustawia nowy adres URL repozytorium Git, do którego chcesz przekazać. Ważne jest, aby wpisać własną nazwę użytkownika i nazwę projektu


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

To dla mnie. Ale to, co naprawdę pomogło mi w tym problemie, to to, że jestem użytkownikiem portableGit, który został zainstalowany z Gihub dla systemu Windows. Znalazłem rozwiązanie tutaj
PerseP

Świetny! Potrzebowałem zmienić moje genialne repo na repozytorium git lab i to rozwiązanie było idealne! Dziękuję Ci!
Marcelo dos Santos

Taka sama sytuacja jak OP, a ja musiałem to zrobić, a następnie rozwiązanie @ MrHus.
Sean the Bean

4
To najlepsza odpowiedź IMHO
kratos

83

Jeśli nazwa lokalna została przez pomyłkę nazwana „pochodzenie”, możesz ją usunąć w następujący sposób:

git remote rm origin

Co tak naprawdę znaczy „błędnie nazwana nazwa lokalna jako„ pochodzenie ”? Czy możesz to szczegółowo wyjaśnić? @Ozgur
Yuan Wen

1
Może to oznaczać, że dodano zdalne źródło, które nie wskazuje repozytorium git. Dlatego jeśli planujesz wypchnąć wszystkie zmiany do wzorca, git będzie narzekać, mówiąc, że zdalne pochodzenie nie jest repozytorium git.
Gautham Honnavara,

22

METODA1->

Ponieważ pochodzenie już istnieje, usuń go.

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

METODA2->

Można również zmienić istniejący adres URL zdalnego repozytorium poprzez -> git remote set-url

Jeśli aktualizujesz się, aby używać HTTPS

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

Jeśli aktualizujesz się, aby korzystać z SSH

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

Jeśli spróbujesz zaktualizować nieistniejącego pilota, pojawi się błąd. Więc uważaj na to.

METODA3->

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

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

Aby zweryfikować nową nazwę pilota->

git remote -v

Jeśli nie znasz Gita, wypróbuj ten samouczek->

WYPRÓBUJ TUTORIAL GIT


1
Wielkie dzięki. Zostałem pobrany, ktoś inny git, a następnie chciał sklonować go również w moim GitHub. Wreszcie, odnoszę sukces przy użyciu twojej pierwszej metody.
Naimur Hasan

17

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

W ~/.gitconfigmusisz wprowadzić coś takiego :

[user]
        name  = Uzumaki Naruto
        email = myname@example.com

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

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

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

Jeśli w pliku konfiguracyjnym repozytorium znajduje się sekcja zdalna, a adres URL jest zgodny, wystarczy dodać konfigurację wypychaną. Jeśli używasz publicznego adresu URL do pobierania, możesz wpisać adres URL do wypychania jako „pushurl” (ostrzeżenie: wymaga to właśnie wydanej wersji Git 1.6.4).


10
  1. git remote rm origin

  2. git remote -v Nie wyświetli żadnej nazwy repozytorium

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

  4. git push origin master Rozpocznie się proces tworzenia nowego oddziału. Możesz zobaczyć, jak twoja praca została zepchnięta na github.


8

Nie musisz usuwać istniejącego pilota „origin”, wystarczy użyć nazwy innej niż „origin” dla zdalnego dodawania, np

git remote dodaj github git@github.com: myname / oldrep.git


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

6

Mam ten sam problem i oto jak go naprawiłem po przeprowadzeniu pewnych badań:

  1. Pobierz GitHub na Windows lub użyj czegoś podobnego, co obejmuje powłokę
  2. Otwórz Git Shellz menu zadań. Spowoduje to otwarcie powłoki mocy zawierającej polecenia Git.
  3. W powłoce przejdź do swojego starego repozytorium, np cd C:\path\to\old\repository
  4. Pokaż status starego repozytorium

  5. Teraz usuń zdalne repozytorium z repozytorium lokalnego za pomocą

    git remote rm origin
    
  6. Sprawdź ponownie w kroku 4. Powinien on wyświetlać origintylko zamiast ścieżki pobierania i wypychania.

  7. Teraz, gdy stare zdalne repozytorium zostało odłączone, możesz dodać nowe zdalne repozytorium. Użyj poniższych, aby połączyć się z nowym repozytorium.

Uwaga: W przypadku korzystania z Bitbucket najpierw należy utworzyć projekt na Bitbucket. Po utworzeniu Bitbucket wyświetli wszystkie wymagane polecenia Git, aby wypchnąć twoje repozytorium do zdalnego, które wyglądają podobnie do następnego fragmentu kodu. Działa to jednak również w przypadku innych repozytoriów.

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

Otóż ​​to.


5

Miałem ten sam problem, kiedy pierwszy raz konfigurowałem przy użyciu Bitbucket .

Mój problem polegał na tym, że musiałem zmienić słowo pochodzenie dla czegoś zdefiniowanego przez siebie. Użyłem nazwy aplikacji. Więc:

git remote add AppName https://someone@bitbucket.org/somewhere/something.git

4

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

git remote add origin git@github.com:myname/oldrep.git

do

git remote add neworigin git@github.com:myname/oldrep.git

Myślę, że to powinno zadziałać.

Tak, służą do inicjacji repozytorium i dodania nowego pilota. Tylko ze zmianą nazwy.


3

Możesz także zmienić nazwę repozytorium, do którego chcesz wypchnąć plik REPOHOME / .git / config

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


1

Może się to również zdarzyć, gdy zapomnisz dokonać pierwszego zatwierdzenia.


0

Musisz zaznaczyć origini dodać, jeśli nie istnieje.

if ! git config remote.origin.url >/dev/null; then
    git remote add origin git@github.com:john/doe.git
fi

Utwórz plik check.sh, wklej skrypt, zaktualizuj adres URL repozytorium git i uruchom ./check.sh.


0

Krok 1

git remote rm origin

Krok 2

git remote add origin enter_your_repository_url

Przykład:

git remote add origin https://github.com/my_username/repository_name.git

-1

Najpierw napisz następujący wiersz kodu dla usuniętego pilota:

$ git remote rm origin

a następnie napisz ten wiersz:

$ git remote add origin https://github.com/khadim321/React-Form.git

Działa poprawnie.


spróbuj podać więcej wyjaśnień, aby zwiększyć wartość swojej odpowiedzi
Zeina

Nie jestem pewien, czy to pomaga komuś dodać jedno z twoich repozytoriów github jako zdalne pochodzenie. Odpowiedź na to pytanie była już kilka razy. Sprawdź drugie pytanie przed utworzeniem nowego o tak niskiej jakości.
thmspl

-1

jeśli chcesz utworzyć nowe repozytorium z tym samym projektem w github, a poprzedni pilot nie pozwala ci na to w takim przypadku Najpierw usuń to repozytorium na github, po prostu musisz usunąć folder .git C: \ Users \ Shiva \ AndroidStudioProjects \ yourprojectname \ .git usuń ten folder (upewnij się, że kliknąłeś ukryty plik, ponieważ ten folder jest ukryty)

Kliknij także minus (przycisk Usuń) w studiu Android Ustawienia-> VersionControl kliknij tutaj, aby usunąć kontrolę wersji z Androida A wtedy będziesz mógł utworzyć nowe repozytorium.

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.