ไม่ได้ตั้งค่า GIT_DISCOVERY_ACROSS_FILESYSTEM


98

ฉันค้นหาและอ่านโพสต์ไม่กี่โพสต์ แต่ปัญหาของฉันไม่เหมือนกับ descirbed นี่คือปัญหา: การใช้ git clone ในโฟลเดอร์ภายใต้พาร์ติชันภายนอกของดิสก์ทำงานได้ดี แต่คำสั่ง git ทั้งหมดล้มเหลว ไม่สามารถเรียกใช้สถานะ git หรือ git log ... ฉันมักจะได้รับข้อผิดพลาด

ร้ายแรง: ไม่ใช่ที่เก็บ git (หรือพาเรนต์ใด ๆ ที่จะเมานต์ parent / home / kozi) การหยุดที่ขอบเขตของระบบไฟล์ (ไม่ได้ตั้งค่า GIT_DISCOVERY_ACROSS_FILESYSTEM)

กรุณาช่วยฉันออกไป..

.
├── ABI
├──ไบโอนิค
├──สามารถบูต
├──สร้าง
├──กะรัต
├── Dalvik
├──พัฒนา
├──อุปกรณ์
├──เอกสาร
├──ภายนอก
├──กรอบ
├── GDK
├─ ─ฮาร์ดแวร์
├── libcore
├── libnativehelper
├── ndk
├──แพ็คเกจ
├── pdk
├──สร้างไว้ล่วงหน้า
├── .repo
├── sdk
├──ระบบ
└──เครื่องมือ


ผลลัพธ์ของtreegit repo ของคุณคืออะไร?
โครเนียล

ตกลงผลลัพธ์ls .gitคืออะไร? คุณสามารถวางผลลัพธ์ที่ยาวขึ้นบน pastebin.com และเชื่อมโยงไปยังผลลัพธ์เหล่านั้นได้
โครเนียล

Pastebin มีขีด จำกัด ขนาดฉันอัปโหลดไฟล์ที่นี่
BB755

ผลลัพธ์ของls .gitอะไร?
โครเนียล

@Chronial คุณหมายถึงเอาต์พุต. git ของแต่ละโฟลเดอร์ที่ซ้อนกันในโครงสร้างหรือไม่? หรือมีไดเร็กทอรีเฉพาะที่คุณต้องการให้ฉันระบุ ในโฟลเดอร์รูทฉันเห็นเฉพาะ. repo และไม่มี. git
BB755

คำตอบ:


140

เพียงพิมพ์git initลงในบรรทัดคำสั่งของคุณแล้วกด Enter จากนั้นเรียกใช้คำสั่งของคุณอีกครั้งคุณอาจกำลังทำงานgit remote add origin [your-repository]อยู่

ว่าควรจะทำงานถ้ามันไม่ได้เพียงแจ้งให้เราทราบ


อย่างไรก็ตามโปรดทราบว่าในสถานการณ์บ้าๆข้างต้นจำเป็นต้องใช้พารามิเตอร์ --force ในการกำหนดโครงการโลคัลและสาขาระยะไกลที่เกี่ยวข้อง ฉันสามารถทำได้อย่างปลอดภัยโดย: 1) การสร้างสาขาสำหรับ localRepo3 เวอร์ชันท้องถิ่น (หลังจากเริ่มต้น git): git checkout -b local_version ; จากนั้น 2) การตั้งค่าสาขาเพื่อติดตามจุดเริ่มต้น (คำสั่งของคุณ: git remote add origin [your-repository] ); จากนั้น 3) git checkout remote_branch --force ; จากนั้น 4) การรวมสาขา local_version เข้ากับ remote_branch แต่git remote add origin [your-repository]ยังคงเป็นพระเอกที่นี่ :)
Andrew Faulkner

ไม่ได้ตั้งค่า GIT_DISCOVERY_ACROSS_FILESYSTEM - บน heroku? คุณช่วยแนะนำฉันได้ไหม
Sajjad Murtaza

คุณจะได้รับข้อผิดพลาดเดียวกันหากด้วยเหตุผลบางประการไฟล์. git / index หรือ. git / HEAD ไม่สามารถเขียนได้ด้วยตัวเอง กลับมาหาคุณและปัญหาจะหายไป
ซีเคลลี่

12

พบในหน้านี้และหลาย ๆ คนชอบที่พูดถึงข้อความที่ไม่ได้ตั้งค่า GIT_DISCOVERY_ACROSS_FILESYSTEM ในกรณีของฉันผู้ดูแลระบบ sys ของเราได้ตัดสินใจว่าไดเร็กทอรี apache2 จำเป็นต้องอยู่บนระบบไฟล์ที่ติดตั้งในกรณีที่ดิสก์สำหรับเซิร์ฟเวอร์หยุดทำงานและต้องสร้างใหม่ ฉันพบสิ่งนี้ด้วยคำสั่ง 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>

ในการแก้ไขปัญหานี้ฉันเพียงแค่ใส่สิ่งต่อไปนี้ในเชลล์ของผู้ใช้รูท (เนื่องจากเป็นคนเดียวที่ต้องดูการแก้ไข etckeeper:

export GIT_DISCOVERY_ACROSS_FILESYSTEM=1

และทุกอย่างเรียบร้อยดี ... มีความสุขมาก

หมายเหตุเพิ่มเติม:

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

หวังว่าจะช่วยใครสักคนออกไปบ้างนะ ... -wc


6

เพื่อให้คำตอบที่ยอมรับสมบูรณ์มีปัญหาเดียวกัน ก่อนอื่นระบุรีโมท

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

git fetch 

จากนั้นรับรหัส

git pull origin master

1

ฉันพบปัญหานี้เมื่อฉันคัดลอกที่เก็บในเครื่องของฉัน

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 initตามคำตอบที่แนะนำแล้ว แต่ไม่ได้ผล

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

ฉันแก้ไขโดยเปลี่ยนเจ้าของ repo

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

0

ตรวจสอบว่าคุณอยู่ภายใต้ github repo จริงหรือไม่

ดังนั้นรายชื่อ. git / ควรให้ผลลัพธ์. มิฉะนั้นคุณอาจอยู่ในระดับหนึ่งนอก repo ของคุณ

ตอนนี้ cd ไปยัง repo ของคุณและคุณก็พร้อมที่จะไป


0

ในระยะสั้น git พยายามเข้าถึง repo ที่พิจารณาในระบบไฟล์อื่นและเพื่อบอกอย่างชัดเจนว่าคุณโอเคกับสิ่งนี้คุณต้องตั้งค่าตัวแปรสภาพแวดล้อม GIT_DISCOVERY_ACROSS_FILESYSTEM = 1

ฉันกำลังทำงานในสภาพแวดล้อม CI / CD และใช้คอมไพล์แบบ dockerized ดังนั้นฉันจึงต้องตั้งค่าในสภาพแวดล้อมนั้นdocker run -e GIT_DISCOVERY_ACROSS_FILESYSTEM=1 -v $(pwd):/git --rm alpine/git rev-parse --short HEAD\'

หากคุณอยากรู้อยากเห็น: ด้านบนเมานต์ $ (pwd) ลงใน git docker container และส่ง "rev-parse --short HEAD" ไปยังคำสั่ง git ในคอนเทนเนอร์ซึ่งจะทำงานกับโวลุ่มที่เมาท์นั้น


-1

สำหรับซอร์สโค้ด Android ที่มี repo ฉันเชื่อว่าคุณควรใช้ REPO หากคุณต้องการใช้คอมไพล์จริงๆคุณควรทราบว่าโปรเจ็กต์มีไดเร็กทอรี. git ที่มี ls -a หรือไม่ หรือคุณต้องป้อนไดเร็กทอรีโปรเจ็กต์ย่อยซึ่งควรมี. git


-1

ปัญหาคือคุณไม่ได้อยู่ในไดเร็กทอรีที่ถูกต้อง การแก้ไขง่ายๆใน Jupyter คือทำตามคำสั่งต่อไปนี้:

  1. ย้ายไปที่ไดเร็กทอรี GitHub สำหรับการติดตั้งของคุณ
  2. รันคำสั่ง GitHub

นี่คือตัวอย่างคำสั่งที่จะใช้ใน Jupyter:

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

สังเกตว่าคุณต้องทำคำสั่งในเซลล์เดียวกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.