fatal: „origin” nie wydaje się być repozytorium git

97

Mam repozytorium moodlena moim koncie Github, które mam forkedz oficjalnego repozytorium.

Następnie sklonowałem go na moim lokalnym komputerze. Działało dobrze. Stworzyłem kilka oddziałów (pod masteroddziałem). Zrobiłem kilka zatwierdzeń i zadziałało dobrze.

Nie wiem, jak otrzymuję następujący błąd, kiedy to robię: git push origin master

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Jak mogę naprawić błąd bez zmiany repozytorium na Github?

używam Ubuntu 12.10

Treść mojego .git/configpo wykonaniu cat $(git rev-parse --show-toplevel)/.git/configdaje:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[branch "master"]
[branch "MOODLE_23_STABLE"]
[branch "MOODLE_24_STABLE"]
[remote "upstream"]
    url = git://git.moodle.org/moodle.git
    fetch = +refs/heads/*:refs/remotes/upstream/*
xan
źródło
Proszę wydrukować zawartość .git / config i dodać tutaj
pmod
@pmod: Zobacz moje zaktualizowane pytanie.
xan
Folder, do którego sklonowałeś na komputerze lokalnym, powinien zawierać folder .git.
pmod
@xancat $(git rev-parse --show-toplevel)/.git/config
bereal
@pmod: Tak, znalazłem to. Proszę zobaczyć moje zaktualizowane pytanie.
xan

Odpowiedzi:

120

$HOME/.gitconfigto twoja globalna konfiguracja dla git.
Istnieją trzy poziomy z plików konfiguracyjnych .

 cat $(git rev-parse --show-toplevel)/.git/config

( wspomniane przez bereal ) to lokalna konfiguracja, lokalna dla sklonowanego repozytorium.

możesz także pisać z poziomu repozytorium:

git remote -v

I zobacz, czy na liście znajduje się jakiś pilot o nazwie „pochodzenie”.

Jeśli nie, jeśli brakuje tego pilota (który jest tworzony domyślnie podczas klonowania repozytorium), możesz go dodać ponownie:

git remote add origin url/to/your/fork

W PO wspomniano:

Robi git remote -vdaje:

upstream git://git.moodle.org/moodle.git (fetch) 
upstream git://git.moodle.org/moodle.git (push)

Tak „ origin” brakuje: odniesienie do swojej widelcem.
Zobacz „ Jaka jest różnica między origini upstreamw githubie

wprowadź opis obrazu tutaj

VonC
źródło
Robi git remote -vdaje: upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push)
xan
@xan 'upstream' to repozytorium, które rozwidliłeś. Brakuje źródła, które jest Twoim widelcem na github. Zobacz stackoverflow.com/a/15632224/6309 i stackoverflow.com/a/9257901/6309
VonC
Jak zmienić widelec na master?
Wolfpack'08
@ Wolfpack'08 „fork” oznacza repozytorium (z wieloma gałęziami). Zmiana na gałąź jest operacją lokalną, która obejmuje przełącznik git: stackoverflow.com/a/57066202/6309 . Co, według twoich własnych słów, oznacza dla ciebie „zamiana widelca na mistrza”? Zmiana lokalnego oddziału w lokalnym sklonowanym repozytorium (zdalnym rozwidleniu GitHub)?
VonC
1
Jeśli jesteś właścicielem zdalnego repo GHY, wystarczy wcisnąć do niego: git push -u ghy master.
VonC
22

Napotkałem ten sam problem, kiedy zmieniłem nazwę mojego repozytorium na GitHub. Próbowałem naciskać, w którym momencie wystąpił błąd

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Musiałem zmienić adres URL za pomocą

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

Po tym wszystkie polecenia zaczęły działać dobrze. Możesz sprawdzić zmianę za pomocą

git remote -v

W moim przypadku po udanej zmianie w adresie URL pokazało się poprawne repozytorium o zmienionej nazwie

[aniket@alok Android]$ git remote -v
origin  ssh://[email protected]/aniket91/TicTacToe.git (fetch)
origin  ssh://[email protected]/aniket91/TicTacToe.git (push)
Aniket Thakur
źródło
14

Możliwe, że druga gałąź, z której próbujesz wyciągnąć, nie jest zsynchronizowana; więc przed dodaniem i usunięciem zdalnego spróbuj (jeśli próbujesz wyciągnąć z mastera)

git pull origin master

dla mnie to proste połączenie rozwiązało te komunikaty o błędach:

  • fatal: „master” nie wydaje się być repozytorium git
  • krytyczny: nie można odczytać ze zdalnego repozytorium.
sivi
źródło
3

Spróbuj najpierw utworzyć zdalne źródło, być może brakuje, ponieważ zmienisz nazwę zdalnego repozytorium

git remote dodaj źródło URL_TO_YOUR_REPO

zdravko zdravkin
źródło
2

To nie jest odpowiedzią na twoje pytanie, ale napotkałem podobny komunikat o błędzie, ale z innego powodu. Pozwólcie mi zrobić mój post w celu zbierania informacji.

Mam repozytorium git na dysku sieciowym. Nazwijmy ten dysk sieciowy RAID. Sklonowałem to repozytorium na moim komputerze lokalnym (LOKALNY) i na moim klastrze do przetwarzania numerów (CRUNCHER). Dla wygody zamontowałem katalog użytkownika mojego konta w CRUNCHER na moim lokalnym komputerze. Dzięki temu mogę manipulować plikami w CRUNCHER bez konieczności wykonywania pracy w terminalu SSH.

Dzisiaj modyfikowałem pliki w repozytorium w CRUNCHER za pośrednictwem mojego lokalnego komputera. W pewnym momencie zdecydowałem się zatwierdzić pliki, więc zatwierdziłem. Dodanie zmodyfikowanych plików i wykonanie zatwierdzenia działało zgodnie z oczekiwaniami, ale kiedy zadzwoniłem git push, otrzymałem komunikat o błędzie podobny do tego, który pojawił się w pytaniu.

Powodem było to, że zadzwoniłem pushz repozytorium w CRUNCHER na LOCAL. Tak więc wszystkie ścieżki w pliku konfiguracyjnym były po prostu błędne.

Kiedy zdałem sobie sprawę z mojej winy, zalogowałem się do CRUNCHER za pośrednictwem terminala i mogłem wypchnąć zatwierdzenie.

Zapraszam do komentowania, jeśli moje wyjaśnienie nie jest zrozumiałe lub uznasz, że mój post jest zbyteczny.

Dohn Joe
źródło
1

Miałem ten sam błąd na git pull origin nazwa gałęzi podczas ustawiania zdalnego źródła jako ścieżki FS, a nie ssh w .git / config :

fatal: '/path/to/repo.git' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly

Było tak (działa to tylko dla użytkowników na tym samym serwerze git, którzy mają dostęp do git):

url = file:///path/to/repo.git/

Naprawiono to w ten sposób (działa to na wszystkich użytkowników, którzy mają dostęp do użytkownika git (ssh authorizes_keys lub password)):

url = [email protected]:path/to/repo.git

powodem, dla którego miałem to jako ścieżkę do katalogu, było to, że pliki git znajdują się na tym samym serwerze.

Waqleh
źródło
W rzeczy samej! /Domeny po musi być :, jeśli za pomocą protokołu SSH. Po prostu zweryfikuj za pomocą git remote -v.
Noam Manos