git遠程代碼庫回滾(webstorm下)


git遠程代碼庫回滾(webstorm下)

1. 場景

添加了一個文件【file-for-test.js】到git的控制下

進行了三次修改,並分別進行了三次commit,最后進行了一次push

git log結果如下圖:

 

【file-for-test.js】文件的內容如下圖:

 

現在希望,將遠程代碼庫下的【file-for-test.js】文件回滾到【//lyn test1】的版本

2. 操作步驟

2.1. 【Version Control】——【Log】

 

2.2. 右擊【//lyn test1】行,【Reset Current Branch to Here...】

 

2.3. 選擇【Hard】,點擊【Reset】

 

此時git log結果如下圖:

 

2.4. 關鍵步驟:設置force push

2.4.1. 【VCS】——【Git】——【Push】

 

2.4.2. 【Configure】

 

2.4.3. 勾選【Allow force push】,【OK】

 

2.5. 【VCS】——【Git】——【Push】

 

2.6. 勾選【Push Tags】,選擇【Current Branch】,選擇【Force Push】

 

2.7. 【Force Push】

 

2.8. OK

git log結果如下圖:

 

【file-for-test.js】文件的內容如下圖:

 

3. 特別注意

后來發現,使用本文所述方法,在以下場景會出現問題:

動作1:開發人員A push了一個錯誤的commit到遠程代碼庫

動作2:開發人員B pull了遠程代碼庫到其本地代碼庫中

動作3:開發人員B修改了一定的代碼,commit到其本地代碼庫中(與遠程代碼庫中不沖突)

動作4:開發人員A按照本文操作,回滾遠程代碼庫到push錯誤的commit之前的版本

動作5:開發人員B push本地代碼庫中的commit到遠程代碼庫中

就在此時,由於開發人員B的本代碼庫中有開發人員A錯誤的commit,所以開發人員B的push操作會先將本地代碼庫(有錯誤commit的版本)和遠程代碼庫(沒有錯誤commit的版本)進行merge,得到一個有錯誤commit的版本,再push到遠程代碼庫上。所以,你懂的。

故,結論:當出現需要遠程代碼庫回滾時,采用直接修改后再重新push的方法,不要采用本文所描述的方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM