Wenn das GitHub-Repo während Ihrer lokalen Arbeit neue Commits erhalten hat, würde ich empfehlen, Folgendes zu verwenden:
git pull --rebase
git push
Die vollständige Syntax lautet:
git pull --rebase origin master
git push origin master
Mit Git 2.6+ (Sept. 2015), nachdem (einmal)
git config --global pull.rebase true
git config --global rebase.autoStash true
Ein einfaches git pull
wäre genug.
(Hinweis: Mit Git 2.27 Q2 2020 ist a merge.autostash
auch für Ihren regulären Pull ohne Rebase verfügbar.)
Auf diese Weise würden Sie (den --rebase
Teil) Ihrer lokalen Commits zusätzlich zu den neu aktualisierten origin/master
(oder origin/yourBranch
:git pull origin yourBranch
.
Ein vollständigeres Beispiel finden Sie in Kapitel 6 Pull with Rebase des Git Pocket Book .
Ich würde empfehlen:
# add and commit first
git push -u origin master
Dies würde eine Verfolgungsbeziehung zwischen Ihrer lokalen Hauptniederlassung und ihrer vorgelagerten Niederlassung herstellen.
Danach kann jeder zukünftige Push für diesen Zweig mit einem einfachen:
git push
Siehe " Warum muss ich einen neuen Zweig explizit pushen? ".
Da das OP sein Commit bereits zurückgesetzt und wiederholt hat, zusätzlich zu origin/master
:
git reset --mixed origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin master
Es besteht keine Notwendigkeit pull --rebase
.
Hinweis: git reset --mixed origin/master
Kann auch geschrieben werden git reset origin/master
, da die --mixed
Option bei Verwendung die Standardoption ist git reset
.