Was ist der richtige Weg?
git add foo.js
git commit foo.js -m "commit"
git pull
git push
Oder
git pull
git add foo.js
git commit foo.js -m "commit"
git push
Oder
git add foo.js
git pull
git commit foo.js -m "commit"
git push
UPD:
Ich habe vergessen zu erwähnen, dass ich in diesem Fall git add
eine verfolgte und geänderte Datei inszeniere . Keine brandneue Datei in das Repository aufnehmen. Ändert dies eine Befehlsreihenfolge?
Antworten:
Ich denke, dass der beste Weg, dies zu tun, ist:
Verstecken Sie Ihre lokalen Änderungen:
Aktualisieren Sie den Zweig auf den neuesten Code
Führen Sie Ihre lokalen Änderungen in den neuesten Code ein:
Fügen Sie Ihre Änderungen hinzu, übernehmen Sie sie und übertragen Sie sie
Nach meiner Erfahrung ist dies der Weg zum geringsten Widerstand mit Git (sowieso in der Kommandozeile).
quelle
git stash
?pull = fetch + merge.
Sie müssen festlegen, was Sie vor dem Zusammenführen getan haben.
Also nach dem Festschreiben ziehen.
quelle
rebase
stattdessen tunmerge
. Sie können es entweder mitgit commit && git rebase
oder tungit pull --rebase
.git pull
meine Änderungen nach dem Staging vorzunehmen, da dies für mich am natürlichsten ist. Obwohl mir klar ist, dass viele verschiedene Workflows funktionieren (Stash ist auch gut), ist es wahrscheinlich Geschmackssache.Ich würde vorschlagen, so oft wie möglich aus dem Remote-Zweig zu ziehen, um große Zusammenführungen und mögliche Konflikte zu minimieren.
Trotzdem würde ich mich für die erste Option entscheiden:
Übernehmen Sie Ihre Änderungen vor dem Abrufen, damit Ihre Festschreibungen während des Abrufs mit den Remote-Änderungen zusammengeführt werden. Dies kann zu Konflikten führen, mit denen Sie beginnen können, wenn Sie wissen, dass Ihr Code bereits festgeschrieben ist, falls etwas schief geht und Sie die Zusammenführung aus irgendeinem Grund abbrechen müssen.
Ich bin mir sicher, dass jemand mit mir nicht einverstanden sein wird. Ich glaube nicht, dass es einen richtigen Weg gibt, diesen Zusammenführungsfluss durchzuführen, nur das, was für Menschen am besten funktioniert.
quelle
git add
genau in meinem Beispiel verwendet wird.Ich denke, dies
git pull --rebase
ist der sauberste Weg, um Ihre lokal zuletzt festgeschriebenen Commits über die Remote-Commits zu setzen, die Sie zu einem bestimmten Zeitpunkt nicht haben.Auf diese Weise müssen Sie nicht jedes Mal ziehen, wenn Sie Änderungen vornehmen möchten.
quelle
Sie möchten, dass Ihre Änderung über dem aktuellen Status des Remote-Zweigs angezeigt wird. Also möchten Sie wahrscheinlich direkt ziehen, bevor Sie sich verpflichten. Drücken Sie danach Ihre Änderungen erneut.
"Schmutzige" lokale Dateien sind kein Problem, solange keine Konflikte mit dem Remote-Zweig bestehen. Wenn es jedoch zu Konflikten kommt, schlägt die Zusammenführung fehl, sodass beim Ziehen vor dem Vornehmen lokaler Änderungen kein Risiko oder keine Gefahr besteht.
quelle