Git push: „fatal 'origin' nie wydaje się być repozytorium git - fatal Nie można odczytać ze zdalnego repozytorium.”


119

Wiem, że zadawano już podobne pytania.

Ale uważam, że mój problem wynika z błędu, który popełniłem wcześniej, i dlatego jest inny: pozwól mi wyjaśnić.

Wszystko działało sprawnie, jak mogłem:

  • git add . wszystkie pliki z mojego lokalnego repozytorium.
  • git commit -m "message here" aby dodać wiadomości do moich zatwierdzeń.
  • git push origin master aby przesłać moje pliki do GitHub.
  • git push heroku master przesłać moje pliki do Heroku.

Jednak w pewnym momencie utworzyłem nowy oddział nazywany lokalnie add-calendar-modelna wypadek, gdyby kolejne kroki rozwoju aplikacji poszły na południe ...

... co dokładnie się wydarzyło.

Jednak pomimo wielu prób nie udało mi się pobrać kodu początkowego - czyli kodu sprzed utworzenia nowej gałęzi - z masteroddziału do lokalnego repozytorium.

Postanowiłem więc ręcznie usunąć wszystkie pliki z mojego lokalnego repozytorium i git clonemojej mastergałęzi z GitHub.

W ten sposób odzyskałem wszystkie swoje pliki, ale teraz nie mogę już przesłać ich do zdalnego repozytorium.

Za każdym razem, gdy próbuję uruchomić git push origin add-calendar-modellub git push origin master, pojawia się następujący błąd:

fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Nie czuję się dobrze z Gitem i GitHubem, jak można się domyślić, i muszę przyznać, że nie mam pojęcia, jak to naprawić.

Dowolny pomysł?


Miałem podobny błąd, ale mój problem polegał na tym, że zainicjowałem git w katalogu nadrzędnym bieżącego folderu, który próbowałem. Na wszelki wypadek, jeśli ktoś nadal stoi, może sprawdzić, gdzie inicjalizowany jest git, a następnie spróbować ponownie.
Himanshu Kriplani

Odpowiedzi:


216

Najpierw sprawdź, czy Twoje źródło jest ustawione, uruchamiając

git remote -v

Powinno to pokazać wszystkie piloty typu push / fetch dla projektu.

Jeśli zwraca to bez wyjścia, przejdź do ostatniego bloku kodu.

Sprawdź zdalną nazwę / adres

Jeśli to powróci, pokazując, że masz ustawione piloty, sprawdź, czy nazwa pilota odpowiada temu, którego używasz w poleceniach.

$git remote -v
myOrigin ssh://git@example.com:1234/myRepo.git (fetch)
myOrigin ssh://git@example.com:1234/myRepo.git (push)

# this will fail because `origin` is not set
$git push origin master

# you need to use
$git push myOrigin master

Jeśli chcesz zmienić nazwę pilota lub zmienić adres URL pilota, najpierw usuń starego pilota, a następnie dodaj właściwy.

Usuń starego pilota

$git remote remove myOrigin

Dodaj brakującego pilota

Następnie możesz dodać odpowiedniego pilota za pomocą

$git remote add origin ssh://git@example.com:1234/myRepo.git

# this will now work as expected
$git push origin master

U mnie zadziałało bez ssh://przodugit@example.com:1234/myRepo.git
Carol-Theodor Pelu

Czytałem to pytanie, czy możesz pomóc również z nowym błędem wypychania repozytorium?
StaticVariable

12

Jak stwierdził Matt Clark powyżej

Jednak źródło może nie być ustawione, więc pomiń krok usuwania i po prostu próba dodania może to wyjaśnić.

git remote add origin <"clone">

Gdzie „klon” po prostu przechodzi do repozytorium GitHub i kopiuje „URL klonowania HTTPS” i wkleja do GitBash


3

Upewnij się, że plik konfiguracyjny w .git jest poprawny ... Sprawdź adres URL i upewnij się, że używasz prawidłowego protokołu dla swoich kluczy ... ProjectWorkspace / .git / config

  ~Wrong url for git@bitbucket
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = gitbucket.org:Prezyack/project-one-hello.git
    fetch = +refs/heads/*:refs/remotes/origin/*

 ~Wrong URL for SSH...
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = https://emmap1@bitbucket.org/emmap1/bitbucketspacestation.git
[branch "master"]
    remote = origin
    merge = refs/heads/master

Patrzymy na adres URL ... np: W przypadku bitbucket, oczekuj git@bitbucket.org .... Jeśli jest to gitbucket.org. wprowadź niezbędne zmiany .. ZAPISZ Spróbuj ponownie nacisnąć.


1

Mi to pasuje.

git remote add origin https://github.com/repo.git
git push origin master

dodaj adres URL repozytorium do źródła w lokalnym katalogu roboczym


0

Podobny błąd pojawia się podczas pobierania zmian ze źródła. Jeśli próbujesz w Intellij z opcji menu, ściąganie może nie działać bezpośrednio.

Idź do terminala i wpisz to polecenie, a powinno to działać: git pull origin master


0

Miałem ten sam problem. Kiedy sprawdziłem mój plik konfiguracyjny, zauważyłem, że „fetch = + refs / heads / : refs / remotes / origin / ” znajdowało się w tym samym wierszu co „url = Z: /GIT/REPOS/SEL.git”, jak pokazano:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git     fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

Na początku nie sądziłem, że to ma znaczenie, ale po obejrzeniu posta Magere'a przeniosłem linię i to rozwiązało problem:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

0

jeśli dodasz swoje zdalne repozytorium za pomocą git clone, wykonaj następujące kroki: -

git clone <repo_url> następnie

git init

git add * * oznacza dodanie wszystkich plików

git commit -m 'your commit'

git remote -vaby sprawdzić, czy działa gałąź lub nie, jeśli nie, to nic nie pokazuje, a następnie dodajemy lub pobieramy repozytorium. „ najpierw pobierz” . Musisz biec git pull origin <branch> lub git pull -r origin <branch>przed kolejnym pchnięciem .

następnie

git remote add origin <git url>
 git pull -r origin master
git push -u origin master```

0

W ten sposób zaktualizowałem gałąź główną

$ git remote -v
$ git remote rm origin
$ git commit -m "your commit"
$ git remote add origin https://github.com/user/repo.git
$ git push -f origin master

1
Spróbuj dodać wyjaśnienia do swojej odpowiedzi w sposób odpowiadający na pytanie i staraj się pomóc czytelnikowi w zrozumieniu. Obecnie to po prostu czyta się jak anegdota i nawet nie zadziała w ogólnym przypadku (np. https://github.com/Jest to katalog główny witryny i repozytorium git)
Kache

-3

Czasami nie masz lokalnego REF do wypychania tej gałęzi z powrotem do źródła.
Próbować

git push origin master:master

To wyraźnie wskazuje, do której gałęzi należy wypchnąć (iz której)

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.