Git:代碼沖突常見解決方法


情景一:

如果系統中有一些配置文件在生產服務器上做了配置修改,然后后續開發又新添加一些配置項的時候,

在代碼合並的時候,會發生如下代碼沖突:

error: Your local changes to the following files would be overwritten by merge:
    public/conf/application.ini
Please commit your changes or stash them before you merge.

解決方案:(保留本地的修改同時又把遠程的合並過來)

1:如果希望保留生產服務器上所做的改動,同時並入新配置項, 處理方法如下:(記住這3步曲)

1 git stash //將目前還不想提交的但是已經修改的內容進行保存至堆棧中
2 git pull
3 git stash pop

 git stash  的時候會把你本地快照,然后 git pull 就不會阻止你了,pull 完之后這時你的代碼並沒有保留生產環境的修改。

如果僅僅使用 到第二步,則會把本地修改的配置替換到生產環境中

 

使用   git stash pop  ,如有沖突,則會出現如下效果,需要到代碼中去解決沖突。

 會發現發生沖突的本地修改還在,這時候你該commit push啥的就悉聽尊便了,

 

2:不想保存本地修改,直接覆蓋

直接將本地的狀態恢復到上一個commit id 。然后用遠程的代碼直接覆蓋本地就好了

git reset --hard 
git pull origin master

 

---------------------------------------------------------------------------------------------------

error: Pulling is not possible because you have unmerged files.

 

在git pull的過程中,如果有沖突,那么除了沖突的文件之外,其它的文件都會做為staged區的文件保存起來。

解決方案:

1 git reset --hard FETCH_HEAD
2 git pull就會成功。

 


免責聲明!

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



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