這可能是一個小vaque,但我完全驚呆了這個問題。我正在和一位朋友在一個分支上工作。有時候,當我們積累了許多像「固定錯字」之類的「毫無意義」的提交時,他壓縮它們,然後用--force
標誌推動它們。壓扁舊的承諾後壁球
接下來,我將這些變化拉下來,嘗試提交我的東西。當我嘗試推動時,我也得到很多舊承諾推動。我明白,他們在那裏,因爲從回購消失。但這是一個問題,因爲在此之後,他需要解決很多衝突。
我們可以用這個做什麼?
這可能是一個小vaque,但我完全驚呆了這個問題。我正在和一位朋友在一個分支上工作。有時候,當我們積累了許多像「固定錯字」之類的「毫無意義」的提交時,他壓縮它們,然後用--force
標誌推動它們。壓扁舊的承諾後壁球
接下來,我將這些變化拉下來,嘗試提交我的東西。當我嘗試推動時,我也得到很多舊承諾推動。我明白,他們在那裏,因爲從回購消失。但這是一個問題,因爲在此之後,他需要解決很多衝突。
我們可以用這個做什麼?
由於歷史記錄發生了變化,您需要重新綁定該分支,並且該分支的版本無法再通過該分支的遠程版本訪問。
做到這一點(假設共享的分支稱爲featureA
):
git fetch
git rebase origin/featureA
那麼你應該能夠不推那些老的提交的方式獲得(甚至不會強制推爲好)
我總是「變身」(使用PHPStorm,使用rebase來拉)。 –
你應該在擠壓前擠壓。如果變更集不打算共享,請不要共享。如果你無法做到這一點,你必須確保每個人在被壓扁後襬脫多餘的變更集,或者冒着某個人無意中將他們推回到中央/共享存儲庫的風險。 –
基本上,他在與'master'合併之前壓扁。但是,然後,我們又回到了我們的分支有一些變化/修復。那麼我應該怎麼做,在推動之前擠壓呢? –
可能的重複[如何在某人將推折或重置推送到發佈的分支後恢復/重新同步?](http://stackoverflow.com/questions/4084868/how-do-i-recover-resynchronise-after-有人推動重組或重設爲酒吧) –