„Fatal: not a git repository (or any of the parent direct directory)” from git status

101

To polecenie działa, aby pobrać pliki i skompilować je:

git clone a-valid-git-url

na przykład:

git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

Jednak git status(lub dowolne inne polecenie git) powoduje powyższy fatal: Not a git repository (or any of the parent directories)błąd.

Co ja robię źle?

Kevin Kostlan
źródło
6
Wyrejestrowany kod znajduje się w liggghtskatalogu.
Eugen Constantin Dinca

Odpowiedzi:

164

Najpierw musisz przejść do katalogu:

$ git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts
Cloning into 'liggghts'...
remote: Counting objects: 3005, done.
remote: Compressing objects: 100% (2141/2141), done.
remote: Total 3005 (delta 1052), reused 2714 (delta 827)
Receiving objects: 100% (3005/3005), 23.80 MiB | 2.22 MiB/s, done.
Resolving deltas: 100% (1052/1052), done.

$ git status
fatal: Not a git repository (or any of the parent directories): .git
$ cd liggghts/
$ git status
# On branch master
nothing to commit (working directory clean)
Michael Durrant
źródło
2
Ten błąd pojawia się również, gdy git łączy się z własnym katalogiem .git. Wyciągnąłem i zobaczyłem komunikat „Automatyczne pakowanie repozytorium w tle w celu uzyskania optymalnej wydajności”. Następnie próbowałem wykonać więcej operacji, otrzymując tylko komunikat o błędzie OP. Mój folder .git nadal tam jest, ale git w jakiś sposób go uszkodził. Uruchomienie git initrozwiązało problem.
Cerin
Jaki ja jestem głupi. Sprawdzam status gita przed przejściem do katalogu :) Dziękuję bardzo.
webHasan
13

Właśnie otrzymałem tę wiadomość i przed wypróbowaniem innych jest bardzo prosta odpowiedź. W katalogu nadrzędnym wpiszgit init

Spowoduje to zainicjowanie katalogu dla git. Wtedy git addi git commitpowinno działać.

Rachunek
źródło
Przed czy po klonie? Czy stworzyłoby to nowe repozytorium Git? Jak to zadziała z istniejącym repozytorium git i sklonowaną historią? Co dzieje się z oryginalną remotescenerią w tym układzie?
Michael Durrant
11

W moim przypadku była to zmienna środowiskowa GIT_DIR, do której dodałem, aby uzyskać szybszy dostęp.

To również zepsuło wszystkie moje lokalne repozytoria w SourceTree :(

lucasvc
źródło
5

Czasami jest to spowodowane ssh. Możesz więc użyć tego:

git clone https://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

zamiast:

git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts
Umit Kaya
źródło
Pojawiał się błąd podczas próby sklonowania repozytorium na mój lokalny komputer. Przerzuciłem się Z używając https: // NA git: // i został on pomyślnie sklonowany. Dzięki za wskazanie mi właściwego kierunku.
Scott Wade
4

w moim przypadku miałem ten sam problem, próbując dowolnych poleceń git (np. status git) za pomocą cmd systemu Windows. więc po zainstalowaniu gita dla okna https://windows.github.com/ w zmiennych środowiskowych dodaję ścieżkę klasy gita do zmiennej „PATH”. zazwyczaj git zostanie zainstalowany po C:/user/"username"/appdata/local/git/bindodaniu tego do PATH w zmiennej środowiskowej

i jeszcze jedna rzecz w cmd przejdź do repozytorium git lub cd do miejsca, w którym znajduje się twój klon w twoim oknie zwykle będą przechowywane w dokumentach na github

cd Document/Github/yourproject

po tym możesz mieć dowolne polecenia git

keyo
źródło
3

Miałem inny problem. Byłem w katalogu git, ale dostałem się tam przez łącze symboliczne. Musiałem wejść do katalogu bezpośrednio (tj. Nie przez dowiązanie symboliczne), wtedy działało dobrze.

Frank Conry
źródło
3
git clone https://github.com/klevamane/projone.git
Cloning into 'projone'...
remote: Counting objects: 81, done.
remote: Compressing objects: 100% (66/66), done.
remote: Total 81 (delta 13), reused 78 (delta 13), pack-reused 0
Unpacking objects: 100% (81/81), done.

musisz "projone cd"

wtedy możesz sprawdzić status.


Jednym z powodów, dla których na początku było to trudne do zauważenia, ponieważ utworzyłeś folder o tej samej nazwie już na swoim komputerze i tam sklonowałeś projekt, więc musisz ponownie zmienić katalog


Onengiye Richard
źródło
3

Ten błąd został rozwiązany, gdy próbowałem zainicjować git za pomocą git init . Zadziałało

Roopal
źródło
2

W moim przypadku oryginalne repozytorium było puste.

Musiałem więc wpisać (w oknach):

mkdir   dest
cd dest
git init
git remote add origin a\valid\yet\bare\repository
git pull origin master

Aby sprawdzić, czy repozytorium jest puste:

git rev-parse --is-bare-repository 
Madlozoz
źródło
1

Po prostu, po sklonowaniu repozytorium, musisz cd (zmienić bieżący katalog) do nowego sklonowanego folderu

git clone https://[email protected]/Repo_Name.git

cd Repo_Name
Abdallah Okasha
źródło
1

Jeśli istniejące rozwiązanie projektowe ma zostać przeniesione na TSF w kodzie VS:

otwórz Terminal i uruchom następujące polecenia:

  1. Zainicjuj git w tym folderze (katalog główny)

    git init

  2. Dodaj Git

    git add .

  3. Połącz swój TSf / Git z tym projektem - {url} zastąp swoim adresem git

    git remote add origin {url}

  4. Zatwierdź te zmiany:

    git commit -m "initial commit"

  5. Push - wysłałem kod jako wersja1, możesz użyć dowolnej nazwy dla swojego oddziału

    git push origin HEAD:Version1

Khushboo Tahir
źródło
0

Nagle pojawił się błąd jak w każdym katalogu, z którego próbowałem uruchomić dowolną komendę git:

fatal: Not a git repository: /Users/me/Desktop/../../.git/modules/some-submodule

U mnie okazało się, że mam .gitna pulpicie ukryty plik z zawartością:

gitdir: ../../.git/modules/some-module

Usunięto ten plik i naprawiono.

Mikael Finstad
źródło
0

mam ten sam problem z mojej sieci biurowej. I korzystać z tego polecenia, ale jej nie działa na mnie url, więc tak: przed $ git clone https://gitlab.com/omsharma/Resume.git

Po użyciu tego adresu URL: $ git clone https://[email protected]/omsharma/Resume.git wypróbuj.

Om Prakash Sharma
źródło