Hier ist meine Strategie, um das Problem zu lösen.
Problemstellung
Wir müssen in mehr als 10 Dateien Änderungen vornehmen. Wir haben versucht PULL (git pull origin master)
, aber Git hat geschrien:
Fehler: Ihre lokalen Änderungen an den folgenden Dateien würden durch den Zusammenführung überschrieben: Bitte, bestätigen Sie Ihre Änderungen oder legen Sie sie beiseite, bevor Sie zusammenführen können.
Wir haben versucht, commit
auszuführen und dann pull
, aber auch das hat nicht funktioniert.
Lösung
Eigentlich befanden wir uns im dirty Zustand, weil die Dateien im "Staging-Bereich" a.k.a "Index-Bereich" und einige im "Head-Bereich" a.k.a "lokales Git-Verzeichnis" waren. Und wir wollten die Änderungen vom Server ziehen.
Überprüfen Sie diesen Link für Informationen zu den verschiedenen Git-Stufen auf klare Weise: GIT Stages
Wir haben die folgenden Schritte befolgt
git stash
(das hat unser Arbeitsverzeichnis sauber gemacht. Ihre Änderungen werden von Git auf dem Stapel gespeichert).
git pull origin master
(Holen Sie sich die Änderungen vom Server)
git stash apply
(Alle Änderungen vom Stapel angewendet)
git commit -m 'Nachricht'
(Die Änderungen bestätigt)
git push origin master
(Die Änderungen zum Server gepusht)
git stash drop
(Den Stapel fallen gelassen)
Verstehen wir wann und warum Sie Verstauen benötigen
Wenn Sie im dirty Zustand sind, bedeutet das, dass Sie Änderungen in Ihren Dateien vornehmen und dann aus irgendeinem Grund gezwungen sind, aufgrund irgendwelcher dringender Arbeit pull oder switch zu einem anderen Branch zu wechseln, können Sie zu diesem Zeitpunkt nicht pullen oder wechseln, bis Sie Ihre Änderung bestätigen. Der stash
-Befehl ist hier als helfende Hand da.
Aus dem Buch ProGIT, 2. Auflage:
Oft, wenn Sie an einem Teil Ihres Projekts gearbeitet haben, sind die Dinge in einem chaotischen Zustand und Sie möchten für eine Weile in einen anderen Branch wechseln, um an etwas anderem zu arbeiten. Das Problem ist, dass Sie keine halbfertige Arbeit bestätigen möchten, nur um später zu diesem Punkt zurückzukehren. Die Antwort auf dieses Problem ist der git stash Befehl. Das Verstauen nimmt den schmutzigen Zustand Ihres Arbeitsverzeichnisses - das heißt, Ihre modifizierten verfolgten Dateien und gestageten Änderungen - und speichert es auf einem Stapel unvollendeter Änderungen, die Sie jederzeit erneut anwenden können.