pull request的一些思考


   由於是團隊使用的是PR工作模式,一般一個issue或者bug沒有處理完成,是不能Pull Request(簡稱PR)的,只能在自己的fork的倉庫上commit和push, 完成了以后再向主倉庫的相關分支發送PR,之后由測試人員在測試機上fetch PR主倉庫中的PR,進行測試,測試完畢通過之后才合並PR到主倉庫的主分支上。

   PR的工作模式是優秀的開源軟件工作模式的代表,當你的PR被開源項目作者合並那是一件很開心的事。這種模式也可以方便做代碼審查,我們每一天都會輪班對當天提交的PR做代碼審查。

   最近開了一個新分支來開發一個大功能,讓我很頭疼的是在埋頭開發時,沒開發完不能隨便PR到主倉庫,但是偶爾要從主倉庫中拉代碼下來更新,這時候可能會有沖突,而太久沒pull,即使只是一個文件沖突了,解決沖突后還要把別人commit的代碼都重新提交一次,就個文件量就很大了。導致我在碼雲上pull request時,總是提示無法加載diff數據。

       

 

 遇到這種情況我目前的解決辦法是:

 1.先刪除當前為了解決沖突的commit:git reset --hard HEAD^

 2.還原沖突文件:

    git log xxx  查改改文件的日志

  git reset 版本號 xxx 回退到指定的版本

  git commit -m "文件回退" 提交本地

    git checkout xxx 更新到工作目錄

 3.重新合並分支(我是在master分支上pull主倉庫的代碼,然后再開發分支上合並master分支):git merge master

 4.重新在沖突文件上補上你沖突的內容,然后重新add、commit即可。

 

在進行以上操作時最好先git checkout -b 出一個備份分支,最好還要push到遠程倉庫,畢竟數據是無價的。

當然也可以用git reflog找回你之前回退的版本號,然后再git reset --hard 版本號。(版本號取前幾位就行了)這樣就回退到你原來的commit版本了。

 


免責聲明!

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



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