„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?


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)

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ć.


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 :(


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

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


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.


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



3

Ten błąd został rozwiązany, gdy próbowałem zainicjować git za pomocą git init . Zadziałał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 

1

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

git clone https://User_Name@bitbucket.org/Repo_Name.git

cd Repo_Name

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


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.


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://my_gitlab_user@gitlab.com/omsharma/Resume.git wypróbuj.

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.