情景一:
如果系統中有一些配置文件在生產服務器上做了配置修改,然后后續開發又新添加一些配置項的時候,
在代碼合並的時候,會發生如下代碼沖突:
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就會成功。