web-dev-qa-db-de.com

Der Befehl "git add" gibt die Fehlermeldung "fatal: outside repository" zurück

Ich betrete gerade die wunderbare Welt des Idols. Ich muss eine Reihe von Änderungen einreichen, die ich an meinem Programm vorgenommen habe. Es befindet sich in einem Verzeichnis mit dem Namen / var/www/myapp.

Ich habe ein neues Verzeichnis erstellt: "/ home/mylogin/gitclone". Von diesem Verzeichnis aus habe ich einen "git clone" -Befehl gegen das öffentliche Repo ausgeführt und konnte die neueste Kopie erstellen. 

Ich versuche jetzt herauszufinden, wie ich alle Dateien in meinem Arbeitsordner (/ var/www/myapp) in das Master-Repository "einchecken" kann. 

Ich habe aus / home/mylogin/gitclone den folgenden Befehl ausprobiert:

"git add/var/www/myapp", aber es wird eine Fehlermeldung angezeigt, dass sich der Ordner, den ich hinzugefügt habe, außerhalb des Repository befindet. 

Können Sie mir ein paar Hinweise geben, was ich falsch mache? Ich möchte auch alles hinzufügen, ob es sich vom Master unterscheidet oder nicht. Vielen Dank.

19
dot

Zuerst können Sie im Klonordner einen Zweig erstellen (der Master bleibt also unberührt).

Git Branch [name]

Kopieren Sie einfach die gewünschte Datei (in Ihrem alten Ordner) in den Klonordner.

Wenn Sie fertig sind, fügen Sie einfach Ihre Änderungen hinzu bzw. übernehmen Sie sie, und Fügen Sie Ihren Zweig ein in den Zweig "Master"

Es wird so etwas aussehen.

git add .
git commit -m "Comments"
git checkout master
git merge [new_branch]

Probieren Sie dieses Tutorial von GitHub aus

11
JudgeProphet

Sie müssen alle Dateien von/var/www/myapp nach/home/mylogin/gitclone verschieben und dann einen git add . und dann git commit -m "Your message" ausführen. 

4
Catfish

Das liegt daran, dass Sie in /home/mylogin/gitclone Sachen versionieren und git alles in dieses Ordners verfolgt. Sie können keine anderen Ordner außerhalb dieses Repositorys verfolgen.

Eine Lösung kann das Erstellen eines Submoduls oder die Verwendung eines symbolischen Links mit ln -s sein.

2
code ninja

Um Dateien oder Ordner zu Ihrem Repository hinzuzufügen, müssen diese sich in dem Ordner befinden, den Sie mit "git clone" erstellt haben. Kopieren Sie also Ihre Anwendung in Ihren lokalen Git-Ordner und gehen Sie hinein und machen Sie "git add *" und dann können Sie mit "git commit -m 'message' zum Server gehen "und zum Schluss die Änderungen zum Server mit" git Push "

1
Jeremy

Bei einem Upgrade auf git Version 2.12.2, bei dem dieser Fehler aufgetreten ist, habe ich die Datei mit folgendem Pfad hinzugefügt:

git add c:\develop\project\file.text

wenn der vollständige Pfad entfernt wird, funktioniert es wie folgt:

git add file.text
1
Pedro Lopes

Git verfolgt nur Dateien und Ordner innerhalb des Root-Ordners, der das .git-Verzeichnis und die Unterordner im Root-Ordner enthält. Der Ordner, den Sie hinzufügen möchten, liegt außerhalb des Bereichs von git. 

Was Sie tatsächlich tun möchten, ist zunächst git checkout -b myapp, der einen neuen Zweig erstellt und auscheckt, der auf dem Master-Zweig des geklonten Repositorys basiert. Dann würden Sie tatsächlich alle Ihre Dateien kopieren und mit git commit -a -m "Short descriptive name about what you did" bestätigen. Der Parameter -a, den Sie an git commit übergeben haben, enthält alle Änderungen, die am Repository vorgenommen wurden. -m enthält die Festschreibungsnachricht im eigentlichen Befehl. Danach können Sie entweder Push zum Haupt-Repository zurückkehren, wenn Sie Schreibzugriff darauf haben, oder es in Ihr eigenes öffentliches Repo verschieben oder gar nicht. 

Was ich oben beschrieben habe, sind so ziemlich die Grundlagen von Git. Lesen Sie dieses Buch , das ziemlich beschreibend ist.

0
Learath2

Mein Szenario ist, dass der Pfad des git-Repositorys einen symbolischen Link hat und git diesen Fehler ausgibt, wenn Sie die Datei say zu "/home/abc/GIT_REPO/my_dir/my_file".und"/home "hinzufügen. Ist eigentlich ein Softlink zu"/Devhome ".

code ninja gab mir etwas Licht, als ich versuchte, diesen Fall zu debuggen.

Also habe ich versucht, das Zielverzeichnis mit dem Befehl readlink -f /home/abc/GIT_REPO abzurufen, bevor Sie den Befehl add ausführen.

Und dann funktioniert alles wie ein Zauber!

0
Keith

Diese Nachricht kann auch angezeigt werden, wenn der Dateiname in der .gitignore-Datei aufgeführt ist.

0
Romano