在有人推送rebase或重置到已發(fā)布的分支后,如何恢復/重新同步?我們都聽過一個人應該重訂,從未發(fā)表的作品,它的危險,等等。但是,我還沒有看到張貼如何處理的情況下衍合情況的任何食譜被出版?,F(xiàn)在,請注意,只有存儲庫僅由已知(并且最好是很?。┑娜巳嚎寺?,這才真正可行,這樣無論誰推送rebase或重置,都可以通知其他人他們下次需要注意的時候?。ǎ。?。如果你沒有本地提交foo并且它被重新定位,我看到的一個明顯的解決方案將起作用:git fetchgit checkout foogit reset --hard origin/foofoo根據(jù)遠程存儲庫,這將簡單地拋棄本地狀態(tài)以支持其歷史記錄。但是,如果一個人在該分支機構進行了大量的本地更改,那么如何處理這種情況呢?
2 回答

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
在推動變基之后恢復同步在大多數(shù)情況下并不那么復雜。
git checkout foogit branch old-foo origin/foo # BEFORE fetching!!git fetchgit rebase --onto origin/foo old-foo foogit branch -D old-foo
IE瀏覽器。首先,您為遠程分支最初的位置設置了一個書簽,然后使用它來重播從該點開始的本地提交到重新定位的遠程分支。
重新定位就像暴力:如果它不能解決你的問題,你只需要更多。?
如果查找pre-rebase origin/foo
提交ID并使用它,當然可以在沒有書簽的情況下執(zhí)行此操作。
這也是您如何處理在獲取之前忘記創(chuàng)建書簽的情況。什么都不會丟失 - 你只需要檢查遠程分支的reflog:
git reflog show origin/foo | awk ' PRINT_NEXT==1 { print $1; exit } /fetch: forced-update/ { PRINT_NEXT=1 }'
這將打印在origin/foo
最近一次更改其歷史記錄的提取之前指向的提交ID 。
你可以簡單地說
git rebase --onto origin/foo $commit foo
- 2 回答
- 0 關注
- 1124 瀏覽
添加回答
舉報
0/150
提交
取消