GIT_DISCOVERY_ACROSS_FILESYSTEM não definido


99

Tenho pesquisado e lido poucas postagens, mas meu problema não é o mesmo que descrevi. Então aqui está o problema: usar git clone em uma pasta sob a partição externa do disco funciona bem, mas todos os comandos git falham. não consigo executar git status ou git log ... Sempre recebo erros

fatal: Não é um repositório git (ou qualquer pai para montar parent / home / kozi) Parando no limite do sistema de arquivos (GIT_DISCOVERY_ACROSS_FILESYSTEM não definido).

Por favor, me ajude..

.
├── abi
├── biônico
├── inicializável
├── compilação
├── cts
├── dalvik
├── desenvolvimento
├── dispositivo
├── docs
├── externos
├── frameworks
├── gdk
├─ ─ hardware
├── libcore
├── libnativehelper
├── ndk
├── pacotes
├── pdk
├──
prebuilts ├──
.repo ├── sdk
├── sistema
└── ferramentas


qual é a saída de treedentro do seu repo git?
Crônico

ok, qual é a saída de ls .git? Você pode colar resultados mais longos em pastebin.com e criar um link para eles.
Crônico

pastebin tem limites de tamanho,
enviei

qual é a saída de ls .git?
Crônico

@Chronial, você quer dizer a saída .git de cada pasta aninhada na árvore? Ou existe algum diretório específico que você deseja que eu forneça. Na pasta raiz, vejo apenas .repo e não há
.git

Respostas:


143

Basta digitar git initem sua linha de comando e pressionar Enter. Em seguida, execute o comando novamente, provavelmente você estava executando git remote add origin [your-repository].

Isso deve funcionar, se não funcionar, apenas me avise.


Observe, entretanto, que no cenário insano acima, o parâmetro --force foi necessário para realinhar o projeto local e o branch remoto correspondente. Consegui fazer isso com segurança: 1) criando um branch para a versão local de localRepo3 (após git init): git checkout -b local_version ; em seguida, 2) configurar o branch para rastrear a origem (seu comando: git remote add origin [your-repository] ); então 3) git checkout remote_branch --force ; em seguida, 4) uma fusão da ramificação local_version em remote_branch. Mas git remote add origin [seu-repositório] ainda era o herói aqui :)
Andrew Faulkner

GIT_DISCOVERY_ACROSS_FILESYSTEM não definido - no heroku.? você pode me guiar
Sajjad Murtaza

Você obterá o mesmo erro se, por algum motivo, os arquivos .git / index ou .git / HEAD não puderem ser gravados por você. Chown de volta para você e o problema vai embora.
C. Kelly,

13

correu por esta página e vários como tudo falando sobre a mensagem GIT_DISCOVERY_ACROSS_FILESYSTEM não definido. No meu caso, nosso administrador de sistemas decidiu que o diretório apache2 precisava estar em um sistema de arquivos montado, caso o disco do servidor parasse de funcionar e tivesse que ser reconstruído. Eu descobri isso com um comando df simples:

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

Para corrigir isso, coloquei o seguinte no shell do usuário root (já que eles são os únicos que precisam verificar as revisões do etckeeper:

export GIT_DISCOVERY_ACROSS_FILESYSTEM=1

e tudo estava bem e bem ... muita alegria.

Mais notas:

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

Espero que isso ajude alguém em algum lugar ... -wc


6

Para completar a resposta aceita, teve o mesmo problema. Especificou primeiro o controle remoto

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

git fetch 

Então pegue o código

git pull origin master

1

Resumindo, git está tentando acessar um repo que considera em outro sistema de arquivos e para dizer explicitamente que você está bem com isso, você deve definir a variável de ambiente GIT_DISCOVERY_ACROSS_FILESYSTEM = 1

Estou trabalhando em um ambiente de CI / CD e usando um git dockerizado, então tenho que configurá-lo nesse ambiente docker run -e GIT_DISCOVERY_ACROSS_FILESYSTEM=1 -v $(pwd):/git --rm alpine/git rev-parse --short HEAD\'

Se você estiver curioso: Acima monta $ (pwd) no contêiner docker git e passa "rev-parse --short HEAD" para o comando git no contêiner, que então executa contra os volumes montados.


1

Tive esse problema quando copiei meu repositório local.

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

Eu tentei git initcomo algumas respostas sugeriram, mas não funcionou.

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

Eu resolvi mudando o dono do repo

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

0

Verifique se você está realmente em um repositório github.

Portanto, a listagem de .git / deve fornecer resultados ... do contrário, você pode estar em algum nível fora do seu repo.

Agora, faça cd para o seu repo e pronto.


-1

Para o código-fonte do Android com repo, acredito que você deve usar REPO. se você realmente deseja usar o git, deve saber se o projeto tem um diretório .git com ls -a. Ou você tem que entrar no diretório do subprojeto que deve incluir o .git.


-1

O problema é que você não está no diretório correto. Uma correção simples no Jupyter é executar o seguinte comando:

  1. Mova para o diretório GitHub para sua instalação
  2. Execute o comando GitHub

Aqui está um exemplo de comando para usar no Jupyter:

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

Observe que você precisa fazer os comandos na mesma célula.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.