Se o repositório do GitHub tiver recebido novos commits, enquanto você trabalha localmente, aconselho usar:
git pull --rebase
git push
A sintaxe completa é:
git pull --rebase origin master
git push origin master
Com o Git 2.6+ (setembro de 2015), depois de fazer (uma vez)
git config --global pull.rebase true
git config --global rebase.autoStash true
Um simples git pull
seria suficiente.
(Nota: com o Git 2.27 Q2 2020 , a merge.autostash
também está disponível para seu pull regular, sem rebase)
Dessa forma, você iria repetir (a --rebase
parte) seus commits locais no topo do recém-atualizado origin/master
(ou origin/yourBranch
: git pull origin yourBranch
).
Veja um exemplo mais completo no capítulo 6 Puxe com rebase do Git Pocket Book .
Eu recomendaria um:
# add and commit first
git push -u origin master
Isso estabeleceria um relacionamento de rastreamento entre sua ramificação principal local e sua ramificação upstream.
Depois disso, qualquer push futuro para esse ramo pode ser feito com um simples:
git push
Consulte " Por que preciso enviar explicitamente uma nova ramificação? ".
Como o OP já redefiniu e refez seu commit, além de 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
Não há necessidade pull --rebase
.
Nota: git reset --mixed origin/master
também pode ser gravada git reset origin/master
, pois a --mixed
opção é a padrão ao usar git reset
.