1. 程式人生 > >關於git遠端被覆蓋的問題

關於git遠端被覆蓋的問題

有同事A和B,git遠端版本為A0,兩個人的本地專案已經跟遠端同步。同事A先向git提交了3次,A1、A2、A3。git遠端版本為A0、A1、A2、A3。同事B也向git提交了1次B1,但是同事B提交專案時忘了先拉取pull,再推送push,導致同事A的提交被覆蓋。此時git遠端版本變成A0、B1。怎麼辦呢?

git提供了一個方法叫版本回退。

git reset --hard xxxxx     //xxxxxx表示git的版本號

首先確保我們有master許可權,我們現在想回退到A3這個版本,假定A3的版本號為c12345。開啟Git Bash,輸入

git reset --hard c12345

繼續輸入git log,檢視當前版本,可以看到,版本已經回退到A3這個版本。但是這僅僅是本地專案回退了,我們需要本地遠端同步,進行強制推送,繼續輸入

git push -f

這時候大部分會報你沒有許可權推送之類的資訊,這是因為這專案是受保護的。要想強制推送,必須先解除保護。開啟git遠端專案介面,選擇“setting”-"repository"。’下拉到以下介面,點選“Unprotect”,解除對專案的保護。再重新git push -f即可。強制推送後,應該把該專案重新設定為保護狀態。

 

 

至此,版本回退完成。同事B再次提交即可。

&n