(Hinweis: ab Okt. 2020 wird jedes neue Repository mit dem Standardzweig main
und nicht master
erstellt. Und Sie können den Standardzweig eines vorhandenen Repositorys von master
in main
umbenennen.
Der Rest dieser Antwort von 2014 wurde aktualisiert, um "main
" zu verwenden)
(Das Folgende setzt voraus, dass github.com
selbst nicht nicht erreichbar ist, wie eri0o in den Kommentaren bemerkt: siehe www.githubstatus.com
zur Sicherheit)
Wenn im GitHub-Repository neue Commits verzeichnet wurden, während Sie lokal gearbeitet haben, empfehle ich:
git pull --rebase
git push
Die vollständige Syntax lautet:
git pull --rebase origin main
git push origin main
Mit Git 2.6+ (Sept. 2015), nachdem Sie (einmal) ausgeführt haben
git config --global pull.rebase true
git config --global rebase.autoStash true
Wäre ein einfaches git pull
ausreichend.
(Hinweis: mit Git 2.27 Q2 2020 steht auch für Ihren regulären Pull ein merge.autostash
zur Verfügung, ohne Rebase)
So würden Sie (den Teil --rebase
) Ihre lokalen Commits auf dem neu aktualisierten origin/main
(oder origin/yourBranch
: git pull origin yourBranch
) wiederholen.
Sehen Sie ein ausführlicheres Beispiel im Kapitel 6 Pull mit Rebase des Git Pocket Book.
Ich würde empfehlen:
# zuerst hinzufügen und committen
#
git push -u origin main
# Oder git 2.37 Q2 2022+
git config --global push.autoSetupRemote true
git push
Dadurch wird eine Nachverfolgungsbeziehung zwischen Ihrem lokalen Hauptzweig und seinem Upstream-Zweig hergestellt.
Danach kann zukünftig für diesen Zweig jeder Push mit einem einfachen Befehl erfolgen:
git push
Erneut, mit Git 2.37+ und seiner globalen Option push.autoSetupRemote
, würde ein einfaches git push
sogar für den ersten dasselbe tun (d.h. eine Nachverfolgungsbeziehung zwischen Ihrem lokalen main
-Zweig und seinem Upstream-Zweig origin/main
herstellen).
Sehen Sie "Warum muss ich explizit einen neuen Zweig pushen?".
Weil der OP bereits zurückgesetzt und seinen Commit neu durchgeführt hat auf origin/main
:
git reset --mixed origin/main
git add .
git commit -m "Dies ist ein neuer Commit für das, was ich ursprünglich als Änderung geplant hatte"
git push origin main
Es ist nicht erforderlich, pull --rebase
durchzuführen.
Hinweis: git reset --mixed origin/main
kann auch als git reset origin/main
geschrieben werden, da die Option --mixed
die Standardoption ist, wenn git reset
verwendet wird.