GIT_DISCOVERY_ACROSS_FILESYSTEM не встановлено


98

Я шукав і читав кілька публікацій, але моя проблема не така, як описана. Отже, тут проблема: використання git clone у папці під зовнішнім розділом диска працює нормально, але всі команди git не працюють. не можу виконати git status або git log ... Я завжди отримую помилку

fatal: Немає сховища git (або будь-якого батьківського для монтування батьківського / домашнього / козі) Зупинка на межі файлової системи (GIT_DISCOVERY_ACROSS_FILESYSTEM не встановлено).

Будь ласка, допоможіть мені ...

.
├── abi
├── біонічний
├── завантажувальний
├── збірка
├── cts
├── dalvik
├── розробка
├── пристрій
├── документи
├── зовнішні
├── рамки
├── gdk
├─ ─ апаратне забезпечення
├── libcore
├── libnativehelper
├── ndk
├── пакети
├──
pdk ├── попередньо
створені ├──
.repo ├── sdk
├── система
└── інструменти


що виводиться treeвсередині вашого git 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 init): 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] все ще був героєм тут :)
Ендрю Фолкнер

GIT_DISCOVERY_ACROSS_FILESYSTEM не встановлено - на герою.? Ви можете мене
провадити

Ви отримаєте таку саму помилку, якщо з якихось причин файли .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/

Я вирішив це, змінивши власника репо

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

0

Перевірте, чи справді ви перебуваєте у репозиторії github.

Отже, перелік .git / повинен дати вам результати .. в іншому випадку ви можете бути на якомусь рівні поза вашим репо.

Тепер, cd до вашого репо, і ви готові піти.


0

Коротше кажучи, git намагається отримати доступ до репо-файлу, який він розглядає, в іншій файловій системі і явно сказати йому, що з вами все в порядку, ви повинні встановити змінну середовища GIT_DISCOVERY_ACROSS_FILESYSTEM = 1

Я працюю в середовищі CI / CD і використовую докеризований git, тому я повинен встановити його в цьому середовищі docker run -e GIT_DISCOVERY_ACROSS_FILESYSTEM=1 -v $(pwd):/git --rm alpine/git rev-parse --short HEAD\'

Якщо вам цікаво: Вище монтує $ (pwd) в контейнер git docker і передає "rev-parse --short HEAD" команді git у контейнері, яку потім запускає проти встановлених томів.


-1

Для вихідного коду Android з репо, я вважаю, що ви повинні використовувати REPO. якщо ви дійсно хочете використовувати git, вам слід знати, чи має проект .git каталог з ls -a. Або вам потрібно ввести каталог підпроекту, який повинен містити .git.


-1

Проблема в тому, що ви знаходитесь не у правильному каталозі. Просте виправлення в Jupyter полягає у виконанні наступної команди:

  1. Перейдіть до каталогу GitHub для встановлення
  2. Запустіть команду GitHub

Ось приклад команди для використання в Jupyter:

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

Зверніть увагу, що вам потрібно робити команди в одній комірці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.