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 pullwäre genug.
(Hinweis: Mit Git 2.27 Q2 2020 ist a merge.autostashauch für Ihren regulären Pull ohne Rebase verfügbar.)
Auf diese Weise würden Sie (den --rebaseTeil) 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/masterKann auch geschrieben werden git reset origin/master, da die --mixedOption bei Verwendung die Standardoption ist git reset.