Sie haben also Ihre lokalen Änderungen in Ihr lokales Repository übernommen. Um Remote-Änderungen an Ihrem lokalen Repository zu erhalten, ohne Änderungen an Ihren lokalen Dateien vorzunehmen, können Sie diese verwenden git fetch
. Eigentlich git pull
ist eine zweistufige Operation: eine zerstörungsfreie, git fetch
gefolgt von a git merge
. Siehe Was ist der Unterschied zwischen "Git Pull" und "Git Fetch"? für mehr Diskussion.
Detailliertes Beispiel:
Angenommen, Ihr Repository sieht folgendermaßen aus (Sie haben Änderungen vorgenommen test2
:
* ed0bcb2 - (HEAD, master) test2
* 4942854 - (origin/master, origin/HEAD) first
Und das origin
Repository ist wie folgt (jemand anderes hat sich verpflichtet test1
):
* 5437ca5 - (HEAD, master) test1
* 4942854 - first
Zu diesem Zeitpunkt wird sich git beschweren und Sie bitten, zuerst zu ziehen, wenn Sie versuchen, Ihr test2
zu Remote-Repository zu pushen . Wenn Sie sehen möchten, was test1 ist, ohne Ihr lokales Repository zu ändern, führen Sie Folgendes aus:
$ git fetch
Ihr lokales Ergebnis-Repository würde folgendermaßen aussehen:
* ed0bcb2 - (HEAD, master) test2
| * 5437ca5 - (origin/master, origin/HEAD) test1
|/
* 4942854 - first
Jetzt haben Sie die Remote-Änderungen in einem anderen Zweig und behalten Ihre lokalen Dateien bei.
Was kommt dann als nächstes? Sie können a ausführen git merge
, was den gleichen Effekt wie git pull
(in Kombination mit dem vorherigen git fetch
) hat, oder, wie ich es vorziehen würde, a ausführen, git rebase origin/master
um Ihre Änderung zusätzlich anzuwenden origin/master
, wodurch Sie eine sauberere Historie erhalten.
git commit
lokale Änderungen vorgit pull
?