2013-03-26 11 views
45

Mam repozytorium moodle na moim koncie Github, które I forked z oficjalnego repozytorium.fatal: "origin" nie wydaje się być repozytorium git

Potem sklonowałem to na mojej lokalnej maszynie. Wszystko działało dobrze. Stworzyłem kilka oddziałów (pod oddziałem master). Zrobiłem kilka poprawek i wszystko działało dobrze.

nie wiem jak ja otrzymuję następujący błąd, gdy mogę zrobić: git push origin master

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

Jak mogę rozwiązać problem bez wpływu na moje repozytorium Github?

Używam Ubuntu 12.10

zawartość mojego .git/config po zrobieniu cat $(git rev-parse --show-toplevel)/.git/config daje:

[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/* 
+0

Proszę wydrukować zawartość .git/config i dodać tutaj – pmod

+0

@pmod: Proszę zobaczyć moje zaktualizowane pytanie. – xan

+0

Folder, w którym został sklonowany na komputerze lokalnym, powinien zawierać folder .git. – pmod

Odpowiedz

66

$HOME/.gitconfig to globalny config do git.
Istnieją three levels z config files.

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

(mentioned przez bereal) to lokalny config, lokalne do repo zostały sklonowane.

można też wpisać z poziomu repo:

git remote -v 

i sprawdzić, czy jest jakiś odległy o nazwie „pochodzenie” wymienione w nim.

Jeśli nie, jeśli zdalny (który jest tworzony domyślnie podczas klonowania repo) wynosi brakuje, można go dodać ponownie:

git remote add origin url/to/your/fork 

PO wspomina:

Wykonanie git remote -v daje:

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

Brakuje "origin": odniesienie do widelca.
Patrz "What is the difference between origin and upstream in github"

enter image description here

+0

Doing 'git remote -V' daje: ' upstream \t git: //git.moodle.org/moodle.git (pobranie) '' upstream \t git: //git.moodle.org/moodle.git (push) ' – xan

+0

@xan 'upstream" to repo, które rozwidliłeś, brakuje ci pochodzenia, które jest twoim widelcem na githubie. Patrz http://stackoverflow.com/a/15632224/6309 i http://stackoverflow.com/a/9257901/6309 – VonC

6

I w obliczu tego samego problemu, kiedy przemianowano moim repozytorium na GitHub. Próbowałem naciskać, w którym momencie mam 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 wszystkim polecenia rozpoczął działa poprawnie.Można sprawdzić zmianę za pomocą

git remote -v 

W moim przypadku po udanej zmianie pokazał prawidłową zmienionej nazwie repo w adresie URL

[[email protected] Android]$ git remote -v 
origin ssh://[email protected]/aniket91/TicTacToe.git (fetch) 
origin ssh://[email protected]/aniket91/TicTacToe.git (push) 
2

nie odpowiedzieć na to pytanie, ale w obliczu podobnego komunikatu o błędzie, ale ze względu z innego powodu. Pozwól mi, że zrobię mój post ze względu na gromadzenie informacji.

Mam repozytorium git na dysku sieciowym. Nazwijmy to dyskiem sieciowym RAID. Sklonowałem to repo na mojej lokalnej maszynie (LOCAL) i na moim klastrze zgniatania numerów (CRUNCHER). Dla wygody zamontowałem katalog użytkownika mojego konta na CRUNCHER na mojej lokalnej maszynie. Tak, mogę manipulować plikami na CRUNCHER bez potrzeby wykonywania pracy w terminalu SSH.

Dzisiaj modyfikowałem pliki w repozytorium na CRUNCHER przez mój lokalny komputer. W pewnym momencie zdecydowałem się zatwierdzić pliki, więc zrobiłem commit. Dodanie zmodyfikowanych plików i wykonanie commit działało tak, jak się spodziewałem, ale kiedy zadzwoniłem pod numer git push, otrzymałem komunikat o błędzie podobny do tego opublikowanego w pytaniu.

Powód był taki, że zadzwoniłem pod numer push z repozytorium CRUNCHER na LOCAL. Zatem wszystkie ścieżki w pliku konfiguracyjnym były całkiem błędne.

Kiedy zdałem sobie sprawę z mojej winy, zalogowałem się na CRUNCHER przez Terminal i byłem w stanie przepchnąć commit.

Możesz skomentować, jeśli moje wyjaśnienie nie może być zrozumiane, lub moje stanowisko jest zbędne.

0

miałem podczas ustawiania zdalnego pochodzenie jako ścieżka fs a nie ssh w .git ten sam błąd na git pochodzenia ciągnąć BRANCHNAME/config:

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

To było jak tak (działa tylko dla użytkowników na tym samym serwerze git mających dostęp do git):

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

Fixed to jak tak (to działa na wszystkich użytkowników, którzy mają dostęp do git użytkowników (authorizes_keys ssh lub hasło)):

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

powodem miałem go jako ścieżkę katalogu została Ponieważ git pliki znajdują się na tym samym serwerze.

3

Jest możliwe, że druga gałąź, z której próbujesz pobierać dane, nie jest zsynchronizowana; więc przed dodawania i usuwania zdalnego spróbować (jeśli starają się wyciągnąć od mistrza)

git pull origin master 

dla mnie takie proste wezwanie rozwiązać te komunikaty o błędach:

  • śmiertelne: „mistrz” nie wydaje się być repozytorium git
  • fatal: Nie można odczytać z zdalnego repozytorium.