Si le dépôt GitHub a vu de nouveaux commits poussés, alors que vous travailliez localement, je vous conseillerais d'utiliser:
git pull --rebase
git push
La syntaxe complète est:
git pull --rebase origin master
git push origin master
Avec Git 2.6+ (septembre 2015), après avoir fait (une fois)
git config --global pull.rebase true
git config --global rebase.autoStash true
Un simple git pull
suffirait.
(Remarque: avec Git 2.27 Q2 2020 , un merge.autostash
est également disponible pour votre tirage régulier, sans rebase)
De cette façon, vous rejoueriez (la --rebase
partie) vos commits locaux en plus de la nouvelle mise à jour origin/master
(ou origin/yourBranch
:) git pull origin yourBranch
.
Voir un exemple plus complet dans le chapitre 6 Pull with rebase du Git Pocket Book .
Je recommanderais un:
# add and commit first
git push -u origin master
Cela établirait une relation de suivi entre votre branche principale locale et sa branche en amont.
Après cela, toute poussée future pour cette branche peut être effectuée avec un simple:
git push
Voir " Pourquoi dois-je pousser explicitement une nouvelle branche? ".
Étant donné que l'OP a déjà réinitialisé et refait sa validation en plus 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
Ce n'est pas nécessaire pull --rebase
.
Remarque: git reset --mixed origin/master
peut également être écrit git reset origin/master
, car l' --mixed
option est celle par défaut lors de l'utilisation git reset
.