Git Commit -a "nicht verfolgte Dateien"?

91

Wenn ich a mache git commit -a, sehe ich Folgendes:

  # Please enter the commit message for your changes. Lines starting
  # with '#' will be ignored, and an empty message aborts the commit.
  # On branch better_tag_show
  # Changes to be committed:
  #   (use "git reset HEAD <file>..." to unstage)
  #
  # modified:   ../assets/stylesheets/application.css
  # modified:   ../views/pages/home.html.erb
  # modified:   ../views/tags/show.html.erb
  # modified:   ../../db/seeds.rb
  #
  # Untracked files:
  #   (use "git add <file>..." to include in what will be committed)
  #
  # ../assets/stylesheets/
  # ../views/pages/

Was bedeuten diese nicht verfolgten Dateien? Alle Änderungen wurden tatsächlich verfolgt. Ich verstehe nicht, warum Git mich hier vor nicht verfolgten Dateien warnt.

EDIT :

Ok, ich sehe viele verwirrte Antworten. Dies ist, was passiert, nachdem ich git commit -adies.

# On branch master
nothing to commit (working directory clean)

Wie Sie sehen können, gibt es NICHTS anderes als diese vier Dateien, auf die Änderungen angewendet wurden.

Meine Frage sollte wie folgt umformuliert werden: Warum warnt mich git vor nicht verfolgten Dateien, wenn alle Änderungen in diesem Commit nachverfolgt wurden?

Mit anderen Worten, ist die nicht verfolgte Warnung in der Git-Commit-Nachricht nicht erforderlich ?

verschwunden
quelle
1
(use "git add <file>..." to include in what will be committed)
Zengr
1
Zengr, das nicht erforderlich ist, da git commit -a alle Änderungen an nachverfolgten Dateien festschreibt.
verschwunden
3
Es ist notwendig, wenn die Dateien bisher noch nie addbearbeitet wurden. Aus den Dokumenten für -a: Weisen Sie den Befehl an, Dateien, die geändert und gelöscht wurden, automatisch bereitzustellen, aber neue Dateien, von denen Sie git nichts erzählt haben, sind nicht betroffen .
Noufal Ibrahim
Warum sagst du, dass Git dich warnt? Aus meiner Sicht ist die Meldung "Nicht verfolgte" Dateien informativ. Sie müssen prüfen, ob diese Dateien verwaltet werden müssen, und entsprechend handeln.
Sateesh
@sateesh Nun, wie auch immer du es nennen willst, ich denke immer noch nicht, dass dies überhaupt wirklich hilfreich ist. Wie ist das informativ? Was soll ich machen? Haben Sie meinen Beitrag im Abschnitt "BEARBEITEN" gelesen, in dem ich geschrieben habe, dass an keiner anderen Datei außer den oben aufgeführten Änderungen vorgenommen wurden? Wenn Sie dies informativ finden, ist es gleichbedeutend damit, dass ich Ihnen sage, dass ein zufälliger Ordner in Ihrem Repo-Baum nicht verfolgt wird, wenn Sie sich keine Sorgen machen müssen.
verschwunden

Antworten:

104

Versuchen Sie für andere, die das gleiche Problem haben, zu laufen

git add . Dadurch werden alle Dateien des aktuellen Verzeichnisses hinzugefügt, die verfolgt werden sollen (einschließlich nicht verfolgter Dateien), und dann verwendet

git commit -a um alle verfolgten Dateien festzuschreiben.

Wie von @Pacerier vorgeschlagen, ist ein Liner, der dasselbe tut, der

git add -A

coding_idiot
quelle
4
git commit -aschreibt alle nachverfolgten Dateien fest, nicht nachverfolgte Dateien. git add .verfolgt nicht verfolgte Dateien im aktuellen Verzeichnis. git add -averfolgt alle nicht verfolgten Dateien.
hier
@ Matto ist es git add -Anicht git commit -A. Soweit ich das beurteilen kann, gibt es keinen Schalter, an den Sie übergeben können git commit, der nicht verfolgte Dateien enthält.
Len
1
-a scheint jetzt nur für A veraltet zu sein. Trotzdem danke. :)
Tcratius
Weitere Informationen
Onat Korucu
30

git commit -am "msg"ist nicht dasselbe wie git add fileundgit commit -m "msg"

Wenn Sie einige Dateien haben, die nie zum Git-Tracking hinzugefügt wurden, müssen Sie dies noch tun git add file

Der Befehl "git commit -a" ist eine Verknüpfung zu einem zweistufigen Prozess. Nachdem Sie eine Datei geändert haben, die dem Repo bereits bekannt ist, müssen Sie dem Repo noch mitteilen: „Hey! Ich möchte dies zu den bereitgestellten Dateien hinzufügen und es schließlich an Sie übergeben. “ Dies erfolgt durch Ausgabe des Befehls "git add". "Git Commit -a" stellt die Datei bereit und schreibt sie in einem Schritt fest.

Quelle: "git commit -a" und "git add"

zengr
quelle
aber wie du gesagt hast git commit -a = git add. + Git Commit, warum sollte die Datei nicht automatisch zum Tracking-Bereich hinzugefügt werden? ....
Johnny
1
@ Johnny: git commit -aist nicht gleich git add .+ git commit. Der git addSchritt fügt nur die Dateien hinzu , die in Ihrem git statusVerzeichnis als geändert aufgeführt sind , nicht alles im aktuellen Verzeichnis.
Soren Bjornstad
Ja, das habe ich heute entdeckt!
KansaiRobot
9

Sie sollten in die Befehlszeile eingeben

git add --all

Dadurch werden alle nicht verfolgten Dateien festgeschrieben

Bearbeiten:

Nachdem Sie Ihre Dateien bereitgestellt haben, können sie festgeschrieben werden, sodass Ihr nächster Befehl lauten sollte

git commit -am "Your commit message"
Travis Delly
quelle
5
Dadurch werden alle Dateien inszeniert und nicht festgeschrieben . Das müssen Sie noch separat machen.
Saeb Amini
8
  1. Zuerst müssen Sie alle nicht verfolgten Dateien hinzufügen. Verwenden Sie diese Befehlszeile:

    git add *

  2. Dann schreiben Sie über diese Befehlszeile fest:

    git commit -a

Mohamad
quelle
6

Wenn Sie Probleme mit nicht verfolgten Dateien haben, hilft Ihnen dieses dreizeilige Skript.

git rm -r --cached .
git add -A
git commit -am 'fix'

Dann einfach git push

AliFurkan
quelle
Dies ist für mich ein Wok, weil ich verfolgte Dateien entfernen musste, die ich jetzt ignoriere.
Spyder Man
2

Wie der Name schon sagt, sind "nicht verfolgte Dateien" die Dateien, die nicht von git verfolgt werden. Sie befinden sich nicht in Ihrem Bereitstellungsbereich und waren nicht Teil früherer Commits. Wenn Sie möchten, dass sie versioniert werden (oder von git verwaltet werden), können Sie dies tun, indem Sie 'git' mit 'git add' mitteilen. Lesen Sie dieses Kapitel Aufzeichnen von Änderungen am Repository im Progit- Buch, das eine schöne visuelle Darstellung verwendet, um eine gute Erklärung für das Aufzeichnen von Änderungen am Git-Repo sowie die Begriffe "verfolgt" und "nicht verfolgt" zu erhalten.

Sateesh
quelle
0

Stellen Sie sicher, dass Sie sich in Ihrem lokalen Git im richtigen Verzeichnis (Repository-Hauptordner) befinden, damit es die Konfiguration des Git-Ordners finden kann, bevor Sie Dateien festschreiben oder hinzufügen.

einarc
quelle
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag. - Aus Review
Sampathsris
0
git add --all

Dadurch wird die nicht verfolgte Datei gelöst. Fügen Sie dank @travis delly die gesamte Datei im Verzeichnis hinzu

Lava
quelle