GIT_DISCOVERY_ACROSS_FILESYSTEM nicht festgelegt

89

Ich habe nur wenige Beiträge gesucht und gelesen, aber mein Problem ist nicht dasselbe wie das beschriebene. Hier ist das Problem: Die Verwendung des Git-Klons in einem Ordner unter einer externen Partition der Festplatte funktioniert einwandfrei, aber alle Git-Befehle schlagen fehl. Git-Status oder Git-Protokoll kann nicht ausgeführt werden ... Ich erhalte immer eine Fehlermeldung

Schwerwiegend: Kein Git-Repository (oder ein übergeordnetes Element, das übergeordnetes Element / home / kozi bereitstellen soll) An der Dateisystemgrenze anhalten (GIT_DISCOVERY_ACROSS_FILESYSTEM nicht festgelegt).

Bitte hilf mir..

.
I── abi
├── bionic
├── bootfähig
├── build
├── cts
├── dalvik
├── Entwicklung
├── Gerät
├── docs
├── externe
├── Frameworks
├── gdk
├─ ─ Hardware
├── libcore
├── libnativehelper
├── ndk
├── Pakete
├── pdk
├──
Prebuilts ├──
.repo ├──
sdk ├── System
└── Tools

user755
quelle
Was ist die Ausgabe treein Ihrem Git-Repo?
Chronial
ok, was ist die Ausgabe von ls .git? Sie können längere Ausgaben auf pastebin.com einfügen und mit ihnen verknüpfen.
Chronial
Pastebin hat Größenbeschränkungen, ich habe die Datei hier
user755
Was ist die Ausgabe von ls .git?
Chronial
@Chronial, meinst du die .git-Ausgabe jedes verschachtelten Ordners im Baum? Oder gibt es ein bestimmtes Verzeichnis, das ich bereitstellen soll? Im Stammordner kann ich nur .repo sehen und es gibt nicht
.git

Antworten:

133

Geben git initSie einfach Ihre Befehlszeile ein und drücken Sie die Eingabetaste. Führen Sie dann Ihren Befehl erneut aus, Sie haben wahrscheinlich ausgeführt git remote add origin [your-repository].

Das sollte funktionieren, wenn nicht, lass es mich einfach wissen.

mnafricano
quelle
Beachten Sie jedoch, dass im obigen verrückten Szenario der Parameter --force erforderlich war, um das lokale Projekt und den entsprechenden Remote-Zweig neu auszurichten. Ich konnte dies sicher tun, indem ich: 1) einen Zweig für die lokale Version von localRepo3 (nach git init) erstellte: git checkout -b local_version ; dann 2) Einrichten des Zweigs, um den Ursprung zu verfolgen (Ihr Befehl: git remote add origin [Ihr Repository] ); dann 3) git checkout remote_branch --force ; dann 4) eine Zusammenführung von local_version branch in remote_branch. Aber Git Remote Add Origin [Ihr Repository] war immer noch der Held hier :)
Andrew Faulkner
GIT_DISCOVERY_ACROSS_FILESYSTEM nicht gesetzt - auf Heroku.? Können Sie mich führen
Sajjad Murtaza
12

lief über diese Seite und einige wie alle sprachen über die Nachricht GIT_DISCOVERY_ACROSS_FILESYSTEM nicht gesetzt. In meinem Fall hatte unser Systemadministrator entschieden, dass sich das Verzeichnis apache2 auf einem bereitgestellten Dateisystem befinden muss, falls die Festplatte für den Server nicht mehr funktioniert und neu erstellt werden muss. Ich fand dies mit einem einfachen Befehl 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>

Um dies zu beheben, habe ich Folgendes in die Shell des Root-Benutzers eingefügt (da dies die einzigen sind, die sich mit etckeeper-Revisionen befassen müssen:

export GIT_DISCOVERY_ACROSS_FILESYSTEM=1

und alles war schön und gut ... viel Freude.

Weitere Hinweise:

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

Hoffentlich hilft das jemandem irgendwo ... -wc

William Crighton
quelle
6

Um die akzeptierte Antwort zu vervollständigen, hatte das gleiche Problem. Zuerst die Fernbedienung angegeben

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

git fetch 

Dann holen Sie sich den Code

git pull origin master
LSDeva
quelle
0

Überprüfen Sie, ob Sie sich tatsächlich unter einem Github-Repo befinden.

Wenn Sie also .git / auflisten, erhalten Sie Ergebnisse. Andernfalls befinden Sie sich möglicherweise außerhalb Ihres Repos.

Jetzt CD auf dein Repo und du kannst loslegen.

Kumar
quelle
0

Ich bin auf dieses Problem gestoßen, als ich mein lokales Repository kopiert habe.

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

Ich habe versucht, git initwie eine Antwort vorgeschlagen hat, aber es funktioniert nicht.

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

Ich habe es gelöst, indem ich den Besitzer des Repos gewechselt habe

sudo chown -R www:www ../backup_repo

Git-Status

Am Zweig entwickeln

nichts zu begehen, Arbeitsverzeichnis sauber

Kris Roofe
quelle
0

Kurz gesagt, git versucht, auf ein Repo zuzugreifen, das in einem anderen Dateisystem berücksichtigt wird, und um explizit mitzuteilen, dass Sie damit einverstanden sind, müssen Sie die Umgebungsvariable GIT_DISCOVERY_ACROSS_FILESYSTEM = 1 setzen

Ich arbeite in einer CI / CD-Umgebung und verwende ein Docker-Git, daher muss ich es in dieser Umgebung einstellen. docker run -e GIT_DISCOVERY_ACROSS_FILESYSTEM=1 -v $(pwd):/git --rm alpine/git rev-parse --short HEAD\'

Wenn Sie neugierig sind: Oben wird $ (pwd) in den Git-Docker-Container eingehängt und "rev-parse --short HEAD" an den Befehl git im Container übergeben, der dann gegen die bereitgestellten Volumes ausgeführt wird.

rainabba
quelle
-1

Für Android-Quellcode mit Repo glaube ich, dass Sie REPO verwenden sollten. Wenn Sie git wirklich verwenden möchten, sollten Sie wissen, ob das Projekt das Verzeichnis .git mit ls -a hat. Oder Sie müssen das Unterprojektverzeichnis eingeben, das die .git enthalten soll.

mick3dell
quelle
-1

Das Problem ist, dass Sie sich nicht im richtigen Verzeichnis befinden. Eine einfache Lösung in Jupyter besteht darin, den folgenden Befehl auszuführen:

  1. Wechseln Sie für Ihre Installation in das GitHub-Verzeichnis
  2. Führen Sie den GitHub-Befehl aus

Hier ist ein Beispielbefehl für Jupyter:

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

Beachten Sie, dass Sie die Befehle in derselben Zelle ausführen müssen.

BryanMinorPhD
quelle