GIT_DISCOVERY_ACROSS_FILESYSTEM nie jest ustawiony


99

Przeszukałem i przeczytałem kilka postów, ale mój problem nie jest taki sam jak w opisie. Oto problem: użycie git clone do folderu pod zewnętrzną partycją dysku działa dobrze, ale wszystkie polecenia git zawodzą. nie mogę wykonać statusu git lub dziennika git ... zawsze pojawia się błąd

fatal: Not a git repository (or any parent do mount parent / home / kozi) Stopping at the files system bound (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Proszę pomóż mi..

.
├── abi
├── bionic
├── bootowalny
├── build
├── cts
├── dalvik ├──
programowanie
├── urządzenie
├── dokumentacja
├── zewnętrzne
├── frameworki
├── gdk
├─ ─ sprzętowe
├── libcore
├── libnativehelper
├── NDK
├── pakiety
├── PDK
├── prebuilts
├── .repo
├── SDK
├── System
Tools └──


jaki jest wynik działania treetwojego repozytorium git?
Chronial

ok, jaki jest wynik ls .git? Możesz wkleić dłuższe dane wyjściowe na pastebin.com i link do nich.
Chronial

pastebin ma ograniczenia rozmiaru,
wrzuciłem

jaki jest wynik ls .git?
Chronial

@Chronial, czy masz na myśli dane wyjściowe .git każdego zagnieżdżonego folderu w drzewie? Czy jest jakiś konkretny katalog, który mam podać. W folderze głównym widzę tylko .repo i nie ma .git
BB755

Odpowiedzi:


143

Po prostu wpisz git initw wierszu poleceń i naciśnij Enter. Następnie uruchom ponownie polecenie, prawdopodobnie działałeś git remote add origin [your-repository].

To powinno działać, jeśli nie, po prostu daj mi znać.


Należy jednak zauważyć, że w powyższym szalonym scenariuszu parametr --force był wymagany do ponownego wyrównania projektu lokalnego i odpowiedniej gałęzi zdalnej. Mogłem to zrobić bezpiecznie poprzez: 1) utworzenie gałęzi dla lokalnej wersji localRepo3 (po git init): git checkout -b local_version ; następnie 2) ustawienie gałęzi w celu śledzenia pochodzenia (twoja komenda: git remote add origin [your-repository] ); następnie 3) git checkout remote_branch --force ; następnie 4) połączenie gałęzi local_version w zdalną_branch. Ale git remote add origin [your-repository] nadal był tutaj bohaterem :)
Andrew Faulkner

GIT_DISCOVERY_ACROSS_FILESYSTEM nie jest ustawiony - na heroku.? czy możesz mnie poprowadzić
Sajjad Murtaza

Otrzymasz ten sam błąd, jeśli z jakiegoś powodu pliki .git / index lub .git / HEAD nie są samodzielnie zapisywalne. Zgarnij je z powrotem, a problem zniknie.
C. Kelly

13

biegałem przez tę stronę i kilka podobnych, wszystkich mówiących o komunikacie nie ustawiono GIT_DISCOVERY_ACROSS_FILESYSTEM. W moim przypadku nasz administrator systemu zdecydował, że katalog apache2 musi znajdować się na zamontowanym systemie plików, na wypadek gdyby dysk serwera przestał działać i musiał zostać odbudowany. Znalazłem to za pomocą prostego polecenia df:

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:48:43)--> df -h
Filesystem                           Size  Used Avail Use% Mounted on
<snip>
/dev/mapper/vgraid-lvapache           63G   54M   60G   1% /etc/apache2
<snip>

Aby to naprawić, po prostu umieściłem następujące informacje w powłoce użytkownika root (ponieważ są jedynymi, którzy muszą przeglądać wersje etckeepera:

export GIT_DISCOVERY_ACROSS_FILESYSTEM=1

i wszystko było dobrze i dobrze ... dużo radości.

Więcej uwag:

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:48:54)--> export GIT_DISCOVERY_ACROSS_FILESYSTEM=0

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:35)--> git status
On branch master
nothing to commit, working tree clean

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:40)--> touch apache2/me

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:45)--> git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    apache2/me

nothing added to commit but untracked files present (use "git add" to track)

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:47)--> cd apache2

-->  UBIk  <--:root@ns1:[/etc/apache2]
--PRODUCTION--(16:57:50)--> git status
fatal: Not a git repository (or any parent up to mount point /etc/apache2)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
-->  UBIk  <--:root@ns1:[/etc/apache2]
--PRODUCTION--(16:57:52)--> export GIT_DISCOVERY_ACROSS_FILESYSTEM=1

-->  UBIk  <--:root@ns1:[/etc/apache2]
--PRODUCTION--(16:58:59)--> git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    me

nothing added to commit but untracked files present (use "git add" to track)

Miejmy nadzieję, że to pomoże komuś gdzieś ... -wc


6

Aby uzyskać pełną zaakceptowaną odpowiedź, miałem ten sam problem. Najpierw określono pilota

git remote add origin https://github.com/XXXX/YYY.git

git fetch 

Następnie zdobądź kod

git pull origin master

1

Krótko mówiąc, git próbuje uzyskać dostęp do repozytorium, które rozważa na innym systemie plików i aby wyraźnie powiedzieć mu, że nie masz nic przeciwko temu, musisz ustawić zmienną środowiskową GIT_DISCOVERY_ACROSS_FILESYSTEM = 1

Pracuję w środowisku CI / CD i używam zdokeryzowanego gita, więc muszę ustawić go w tym środowisku docker run -e GIT_DISCOVERY_ACROSS_FILESYSTEM=1 -v $(pwd):/git --rm alpine/git rev-parse --short HEAD\

Jeśli jesteś ciekawy: Powyżej montuje $ (pwd) w kontenerze git docker i przekazuje polecenie „rev-parse --short HEAD” do polecenia git w kontenerze, które następnie uruchamia na tych zamontowanych wolumenach.


1

Wpadłem w ten problem, kiedy kopiowałem moje lokalne repozytorium.

sudo cp -r original_repo backup_repo
cd backup_repo
git status
fatal: Not a git repository (or any parent up to mount point /data)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Próbowałem, git initjak sugerowała pewna odpowiedź, ale to nie działa.

sudo git init
Reinitialized existing Git repository in /data/HQ/SC_Educations/hq_htdocs/HQ_Educations_bak/.git/

Rozwiązałem to zmieniając właściciela repozytorium

sudo chown -R www:www ../backup_repo
git status
# On branch develop
nothing to commit, working directory clean

0

Sprawdź, czy faktycznie znajdujesz się w repozytorium github.

Tak więc wypisanie .git / powinno dać ci wyniki ... w przeciwnym razie możesz znaleźć się poza repozytorium.

Teraz przejdź do swojego repozytorium i gotowe.


-1

W przypadku kodu źródłowego Androida z repozytorium uważam, że powinieneś użyć REPO. jeśli naprawdę chcesz używać git, powinieneś wiedzieć, czy projekt ma katalog .git z ls -a. Lub musisz wprowadzić podkatalog projektu, który powinien zawierać plik .git.


-1

Problem polega na tym, że nie jesteś we właściwym katalogu. Prostą poprawką w Jupyter jest wykonanie następującego polecenia:

  1. Przejdź do katalogu GitHub w celu instalacji
  2. Uruchom polecenie GitHub

Oto przykładowe polecenie do użycia w Jupyter:

%%bash
cd /home/ec2-user/ml_volume/GitHub_BMM
git show

Pamiętaj, że musisz wykonać polecenia w tej samej komórce.

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.