GIT_DISCOVERY_ACROSS_FILESYSTEM ayarlanmadı


98

Birkaç gönderiyi aradım ve okudum ancak sorunum anlatılanla aynı değil. İşte sorun şu: diskin harici bölümü altında klasöre git clone kullanmak iyi çalışıyor, ancak tüm git komutları başarısız oluyor. git status veya git log çalıştırılamıyor ... her zaman hata alıyorum

fatal: Git deposu değil (veya parent / home / kozi'yi bağlayacak herhangi bir ebeveyn) Dosya sistemi sınırında durma (GIT_DISCOVERY_ACROSS_FILESYSTEM ayarlanmadı).

Lütfen bana yardım edin..

.
├── abi
├── biyonik
├── önyüklenebilir
├── derleme
├──
dalvik
├── geliştirme
├── aygıt
├── belgeler
├── harici
├── çerçeveler
├──
gdk ├─ ─ donanım
├── libcore ├──
libnativehelper ├──
ndk
├── paketleri
├── pdk
├──
prebuilts ├──
.repo ├── sdk
├── sistem
└── araçlar


treegit deponuzun içindeki çıktı nedir?
Chronial

tamam, çıktısı ls .gitnedir? Daha uzun çıktıları pastebin.com'a yapıştırabilir ve bunlara bağlantı verebilirsiniz.
Chronial

pastebin'in boyut sınırları var, dosyayı buraya
BB755

çıktısı ls .gitnedir?
Chronial

@Chronial, ağaçtaki her iç içe klasörün .git çıktısını mı kastediyorsunuz? Veya sağlamamı istediğiniz belirli bir dizin var mı? Kök klasörde yalnızca .repo'yu görebiliyorum ve .git yok
BB755

Yanıtlar:


140

Sadece git initkomut satırınızı yazın ve enter tuşuna basın. Sonra komutunuzu tekrar çalıştırın, muhtemelen koşuyordunuz git remote add origin [your-repository].

Bu işe yaramalı , işe yaramazsa bana haber ver.


Bununla birlikte, yukarıdaki çılgın senaryoda, yerel projeyi ve ilgili uzak şubeyi yeniden hizalamak için --force parametresinin gerekli olduğunu unutmayın. Bunu şu şekilde güvenli bir şekilde yapabildim: 1) localRepo3'ün yerel sürümü için bir şube oluşturarak (git init'ten sonra): git checkout -b local_version ; daha sonra 2) şubeyi orijini takip edecek şekilde ayarlamak (sizin komutunuz: git remote add origin [deponuz] ); sonra 3) git checkout remote_branch --force ; sonra 4) local_version dalının remote_branch ile birleşmesi. Ama git uzaktan kaynak ekle [deponuz] hala kahramandı :)
Andrew Faulkner

GIT_DISCOVERY_ACROSS_FILESYSTEM ayarlanmadı - heroku'da.? bana rehberlik edebilir misin
Sajjad Murtaza

Herhangi bir nedenle .git / index veya .git / HEAD dosyaları kendi başınıza yazılamazsa, aynı hatayı alırsınız. Onları sana geri atarsan sorun ortadan kalkar.
C Kelly

12

bu sayfadan geçti ve bazıları GIT_DISCOVERY_ACROSS_FILESYSTEM not set mesajı hakkında konuşuyor. Benim durumumda, sistem yöneticimiz, sunucunun diskinin çalışmayı durdurması ve yeniden oluşturulması gerekmesi durumunda apache2 dizininin bağlanmış bir dosya sisteminde olması gerektiğine karar vermişti. Bunu basit bir df komutuyla buldum:

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

Bunu düzeltmek için aşağıdakileri kök kullanıcının kabuğuna koydum (çünkü etckeeper revizyonlarına bakması gerekenler sadece onlardır:

export GIT_DISCOVERY_ACROSS_FILESYSTEM=1

ve her şey yolunda ve güzeldi ... çok neşe.

Daha fazla not:

-->  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)

Umarım bu bir yerlerde birine yardımcı olur ... -wc


6

Kabul edilen cevabı tamamlamak için, aynı sorunu yaşadım. İlk önce uzaktan kumandayı belirledi

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

git fetch 

O zaman kodu al

git pull origin master

1

Yerel depomu kopyaladığımda bu sorunla karşılaştım.

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

git initBazı cevapların önerdiği gibi denedim , ama işe yaramıyor.

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

Deponun sahibini değiştirerek çözdüm

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

0

Gerçekte bir github deposu altında olup olmadığınızı kontrol edin.

Yani, .git / listesi size sonuç vermeli ... Aksi takdirde deponuzun dışında bir seviye olabilirsiniz.

Şimdi, deponuza cd yapın ve gitmekte fayda var.


0

Kısacası git, başka bir dosya sisteminde düşündüğü bir depoya erişmeye çalışıyor ve bunu açıkça kabul ettiğinizi söylemek için, GIT_DISCOVERY_ACROSS_FILESYSTEM = 1 ortam değişkenini ayarlamalısınız.

Bir CI / CD ortamında çalışıyorum ve dockerize bir git kullanıyorum, bu yüzden onu o ortamda ayarlamam gerekiyor docker run -e GIT_DISCOVERY_ACROSS_FILESYSTEM=1 -v $(pwd):/git --rm alpine/git rev-parse --short HEAD\'

Merak ediyorsanız: Yukarı, git docker konteynerine $ (pwd) bağlar ve konteynerdeki git komutuna "rev-parse --short HEAD" i aktarır ve bu komut, daha sonra bağlanan birimlere karşı çalışır.


-1

Repo ile android kaynak kodu için REPO kullanmanız gerektiğine inanıyorum. git'i gerçekten kullanmak istiyorsanız, projenin ls -a ile .git dizini olup olmadığını bilmelisiniz. Veya .git'i içermesi gereken alt proje dizinine girmelisiniz.


-1

Sorun, doğru dizinde olmamanızdır. Jupyter'deki basit bir düzeltme, aşağıdaki komutu yapmaktır:

  1. Kurulumunuz için GitHub dizinine gidin
  2. GitHub komutunu çalıştırın

Jupyter'de kullanılacak örnek bir komut:

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

Komutları aynı hücrede yapmanız gerektiğini unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.