Если в репозитории GitHub были обнаружены новые коммиты, когда вы работали локально, я бы посоветовал использовать:
git pull --rebase
git push
Полный синтаксис:
git pull --rebase origin master
git push origin master
С Git 2.6+ (сентябрь 2015 г.), после выполнения (один раз)
git config --global pull.rebase true
git config --global rebase.autoStash true
Простого git pull
было бы достаточно.
(Примечание: с Git 2.27 Q2 2020 , a merge.autostash
также доступен для обычного тяги, без перебазирования)
Таким образом, вы будете воспроизводить ( --rebase
часть) ваши локальные коммиты поверх недавно обновленного origin/master
(или origin/yourBranch
:) git pull origin yourBranch
.
Смотрите более полный пример в Тяговой главе 6 с перебазироваться в Git Pocket Book .
Я бы порекомендовал:
# add and commit first
git push -u origin master
Это установит отношения отслеживания между вашей локальной веткой master и ее веткой upstream.
После этого любой будущий толчок для этой ветви может быть сделан с помощью простого:
git push
Смотрите « Зачем мне явно выдвигать новую ветку? ».
Так как OP уже сбросил и переделал свой коммит поверх 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
Там нет необходимости pull --rebase
.
Примечание: git reset --mixed origin/master
также может быть написано git reset origin/master
, так как эта --mixed
опция используется по умолчанию при использовании git reset
.