Hier ist meine Strategie, um das Problem zu lösen.
Problemstellung
Wir müssen Änderungen in mehr als 10 Dateien vornehmen. Wir haben es versucht PULL (git pull origin master)
, aber Git rief:
Fehler: Ihre lokalen Änderungen an den folgenden Dateien werden durch Zusammenführen überschrieben: Bitte übernehmen Sie Ihre Änderungen oder speichern Sie sie, bevor Sie sie zusammenführen können.
Wir haben versucht auszuführen commit
und dann pull
, aber sie haben auch nicht funktioniert.
Lösung
Wir waren tatsächlich in der schmutzigen Phase, weil sich die Dateien im "Staging Area", auch bekannt als "Index Area", und einige im "Head Area", auch bekannt als "Local Git Directory", befanden. Und wir wollten die Änderungen vom Server abrufen.
Überprüfen Sie diesen Link auf klare Weise auf Informationen zu verschiedenen Stufen von Git: GIT-Stufen
Wir haben die folgenden Schritte ausgeführt
git stash
(Dies hat unser Arbeitsverzeichnis sauber gemacht. Ihre Änderungen werden von Git auf dem Stack gespeichert.)
git pull origin master
(Ziehen Sie die Änderungen vom Server)
git stash apply
(Alle Änderungen vom Stapel angewendet)
git commit -m 'message'
(Änderungen übernommen)
git push origin master
(Die Änderungen wurden auf den Server übertragen)
git stash drop
(Lass den Stapel fallen)
Lassen Sie uns verstehen, wann und warum Sie etwas verstauen müssen
Wenn Sie sich im schmutzigen Zustand befinden, bedeutet dies, dass Sie Änderungen an Ihren Dateien vornehmen und dann aus irgendeinem Grund gezwungen sind, für eine sehr dringende Arbeit einen anderen Zweig zu ziehen oder zu wechseln , sodass Sie zu diesem Zeitpunkt nicht ziehen können oder Wechseln Sie, bis Sie Ihre Änderung festschreiben. Der stash
Befehl ist hier als helfende Hand.
Aus dem Buch ProGIT , 2. Auflage:
Wenn Sie an einem Teil Ihres Projekts gearbeitet haben, sind die Dinge oft in einem chaotischen Zustand und Sie möchten die Zweige für ein bisschen wechseln, um an etwas anderem zu arbeiten. Das Problem ist, dass Sie keine halbfertige Arbeit ausführen möchten, nur um später auf diesen Punkt zurückzukommen. Die Antwort auf dieses Problem ist der Befehl git stash. Beim Verstecken wird der fehlerhafte Status Ihres Arbeitsverzeichnisses - dh Ihre geänderten nachverfolgten Dateien und bereitgestellten Änderungen - übernommen und auf einem Stapel nicht abgeschlossener Änderungen gespeichert, die Sie jederzeit erneut anwenden können.