Se il repository GitHub ha visto nuovi commit spinti ad esso, mentre lavoravi localmente, consiglierei di usare:
git pull --rebase
git push
La sintassi completa è:
git pull --rebase origin master
git push origin master
Con Git 2.6+ (settembre 2015), dopo averlo fatto (una volta)
git config --global pull.rebase true
git config --global rebase.autoStash true
Un semplice git pull
sarebbe abbastanza.
(Nota: con Git 2.27 Q2 2020 , merge.autostash
è disponibile anche un pull normale, senza rebase)
In questo modo, verrai riprodotto (la --rebase
parte) commessa dal tuo locale in cima al nuovo aggiornamento origin/master
(o origin/yourBranch
:) git pull origin yourBranch
.
Vedi un esempio più completo nel capitolo 6 Tirare con rebase del Git Pocket Book .
Consiglierei un:
# add and commit first
git push -u origin master
Ciò stabilirebbe una relazione di tracciamento tra la filiale principale locale e la sua filiale a monte.
Dopodiché, qualsiasi spinta futura per quel ramo può essere fatta con un semplice:
git push
Vedi " Perché devo spingere esplicitamente un nuovo ramo? ".
Dal momento che l'OP ha già ripristinato e rifatto il commit sopra 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
non ce ne bisogno pull --rebase
.
Nota: git reset --mixed origin/master
può anche essere scritto git reset origin/master
, poiché l' --mixed
opzione è quella predefinita durante l'utilizzo git reset
.