Jeśli w repozytorium GitHub pojawiły się nowe zatwierdzenia, podczas gdy pracujesz lokalnie, radzę użyć:
git pull --rebase
git push
Pełna składnia to:
git pull --rebase origin master
git push origin master
Z Git 2.6+ (wrzesień 2015), po zrobieniu tego (raz)
git config --global pull.rebase true
git config --global rebase.autoStash true
Wystarczyłoby proste git pull
.
(Uwaga: z Git 2.27 Q2 2020 , A merge.autostash
jest także dostępna dla zwykłego naciągu, bez rebase)
W ten sposób, byś odtworzyć (w --rebase
części) zobowiązuje lokalnych na szczycie nowo zaktualizowane origin/master
(albo origin/yourBranch
: git pull origin yourBranch
).
Zobacz pełniejszy przykład w rozdziale 6 Pull with rebase of Git Pocket Book .
Poleciłbym:
# add and commit first
git push -u origin master
Ustanowiłoby to relację śledzenia między lokalnym oddziałem głównym a jego odgałęzieniem.
Następnie wszelkie przyszłe działania wypychające dla tej gałęzi można wykonać za pomocą prostego:
git push
Zobacz „ Dlaczego muszę jawnie wcisnąć nowy oddział? ”.
Skoro PO już reset i przerobione jego popełnienia na górze 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
Nie ma takiej potrzeby pull --rebase
.
Uwaga: git reset --mixed origin/master
można również napisać git reset origin/master
, ponieważ --mixed
opcja jest domyślna podczas korzystania git reset
.