Ich habe git commit -m "message"
so etwas gemacht:
> git commit -m "save arezzo files"
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: arezzo.txt
# modified: arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
Aber danach, wenn ich es tue git status
, zeigt es die gleichen geänderten Dateien:
> git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: arezzo.txt
# modified: arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
Was mache ich falsch?
git
version-control
git-commit
Arezzo
quelle
quelle
git commit -am "save arezzo files"
Sie diese Option, um alle Änderungen automatisch hinzuzufügen (wrt .gitignore). Möglicherweise möchten Sie nur bestimmte Dateien / Verzeichnisse hinzufügen:git add file.src
Antworten:
Wie die Nachricht sagt:
Git hat einen "Staging-Bereich", in dem Dateien hinzugefügt werden müssen, bevor sie festgeschrieben werden. Eine Erklärung dazu finden Sie hier .
Für Ihr spezielles Beispiel können Sie Folgendes verwenden:
(Beachten Sie das Extra
a
in den Flags, kann auch geschrieben werden alsgit commit -a -m "message"
- beide machen das gleiche)Wenn Sie selektiver festlegen möchten, was Sie dem Commit hinzufügen möchten, verwenden Sie alternativ den Befehl git add , um die entsprechenden Dateien zum Staging-Bereich hinzuzufügen, und den git-Status, um eine Vorschau der hinzuzufügenden Elemente anzuzeigen (denken Sie daran, darauf zu achten der verwendete Wortlaut).
Auf der Git-Dokumentationsseite finden Sie auch allgemeine Dokumentationen und Tutorials zur Verwendung von Git, die detailliertere Informationen zum Konzept des Staging / Hinzufügens von Dateien enthalten.
Eine weitere wichtige Sache, die Sie kennen sollten, ist das interaktive Staging. Auf diese Weise können Sie dem Staging-Bereich Teile einer Datei hinzufügen. Wenn Sie also drei verschiedene Codeänderungen vorgenommen haben (für verwandte, aber unterschiedliche Funktionen), können Sie den interaktiven Modus zum Teilen des Staging-Bereichs verwenden Änderungen und Hinzufügen / Festschreiben jedes Teils der Reihe nach. Kleinere spezifische Commits wie dieses können hilfreich sein.
quelle
Sie haben die Änderungen nicht hinzugefügt. Fügen Sie sie entweder speziell über hinzu
oder fügen Sie alle Änderungen hinzu (vom Stammpfad des Projekts)
oder verwenden Sie die Kurzschrift
-a
beim Festschreiben:quelle
Du solltest tun:
quelle
Ich habe ein kleines Unterprojekt, das ich unter Git-Quellcodeverwaltung hatte, in ein anderes Projekt kopiert und vergessen, den Ordner .git zu löschen. Als ich zum Festschreiben ging, erhielt ich die gleiche Nachricht wie oben und konnte sie erst löschen, nachdem ich den
.git
Ordner gelöscht hatte .Es ist ein bisschen albern, aber es lohnt sich zu überprüfen, ob Sie keinen .git-Ordner unter dem Ordner haben, der nicht festgeschrieben wird.
quelle
Du hättest Folgendes tun können:
Um zu überprüfen, welche Dateien Sie geändert haben und hinzugefügt werden sollen (Trockenlauf: Option -n), und dann
Nur geänderte Dateien hinzufügen
quelle
Ich finde dieses Problem, wenn ich ein
git add .
in einem Unterverzeichnis unten ausgeführt habe, in dem sich meine.gitignore
Datei befindet (sozusagen das Home-Verzeichnis meines Repositorys). Versuchen Sie, die Verzeichnisse in Ihr oberstes Verzeichnis zu ändern undgit add .
anschließend auszuführengit commit -m "my commit message"
.quelle
Vielleicht eine offensichtliche Sache, aber ...
Wenn Sie Probleme mit dem Index haben, verwenden Sie git-gui . Sie erhalten eine sehr gute Übersicht darüber, wie der Index (Staging-Bereich) tatsächlich funktioniert.
Eine weitere Informationsquelle, die mir geholfen hat, den Index zu verstehen, war Scott Chacons "Getting Git" Seite 259 und weiter.
Ich habe angefangen, die Befehlszeile zu verwenden, weil die meisten Dokumentationen nur zeigten, dass ...
Ich denke, Git-GUI und Gitk bringen mich tatsächlich dazu, schneller zu arbeiten, und ich habe schlechte Gewohnheiten wie "Git Pull" zum Beispiel beseitigt ... Jetzt hole ich immer zuerst ... Sehen Sie, was die neuen Änderungen wirklich sind, bevor ich sie zusammenführe.
quelle
Der Grund dafür ist, dass Sie einen Ordner, der bereits von Git verfolgt wird, in einem anderen Ordner haben, der ebenfalls von Git verfolgt wird. Zum Beispiel hatte ich ein Projekt und habe ihm einen Unterordner hinzugefügt. Beide wurden von Git verfolgt, bevor ich sie ineinander steckte. Um die Verfolgung der darin befindlichen Datei zu beenden, suchen Sie sie und entfernen Sie die Git-Datei mit:
In meinem Fall hatte ich eine WordPress-Anwendung und der Ordner, den ich hinzugefügt habe, war ein Thema. Also musste ich zum Theme-Stammverzeichnis gehen und die Git-Datei entfernen, damit das gesamte Projekt nun von der übergeordneten WordPress-Anwendung verfolgt wurde.
quelle
Wenn Sie in meinem Fall mehr Dateien haben, habe ich 7000 Bilddateien, wenn ich versuche, sie aus dem Routenordner des Projekts hinzuzufügen. Es wurden sie nicht hinzugefügt , aber wenn ich in den Bildordner gehe, ist alles in Ordnung. Gehen Sie durch den Zielordner und befehlen Sie wie oben
quelle
Ich hatte ein Problem, bei dem ich es
commit --amend
auch nach der Ausgabe eines tat ,git add .
und es funktionierte immer noch nicht. Es stellte sich heraus, dass ich einige.vimrc
Anpassungen vorgenommen habe und mein Editor nicht richtig funktioniert hat.vim
Das Problem wurde behoben , indem diese Fehler behoben wurden , sodass der richtige Code zurückgegeben wurde.quelle
Ich hatte ein sehr ähnliches Problem mit derselben Fehlermeldung. "Änderungen, die nicht für das Festschreiben bereitgestellt wurden", aber wenn ich einen Unterschied mache, werden Unterschiede angezeigt. Ich fand schließlich heraus, dass ich vor einiger Zeit einen Verzeichnisfall geändert hatte. Ex. "PostgeSQL" bis "postgresql". Wie ich mich jetzt erinnere, hinterlässt git manchmal ein oder zwei Dateien im alten Fallverzeichnis. Dann legen Sie eine neue Version für den neuen Fall fest.
Daher weiß Git nicht, auf wen man sich verlassen soll. Um das Problem zu beheben, musste ich auf die Website des Githubs gehen. Dann können Sie beide Fälle anzeigen. Und Sie müssen alle Dateien im falschen Verzeichnis löschen. Stellen Sie sicher, dass Sie die richtige Version gespeichert haben oder sich im richtigen Gehäuse befinden.
Sobald Sie alle Dateien im alten Fallverzeichnis gelöscht haben, verschwindet das gesamte Verzeichnis. Dann machen Sie ein Commit.
Zu diesem Zeitpunkt sollten Sie in der Lage sein, einen Pull auf Ihrem lokalen Computer durchzuführen und die Konflikte nicht mehr zu sehen. So kann man sich wieder festlegen. :) :)
quelle
Wenn Sie einen Unterordner haben, der aus einem anderen Git-Repository geklont wurde, müssen Sie zuerst die Datei $ .git $ aus dem Child-Repository entfernen. Danach
rm -rf .git
können Sie in den übergeordneten Ordner wechseln und verwendengit add -A
.quelle