Git 在解決沖突的時候文件覆蓋


更新代碼導致被還原或覆蓋的場景:
1、觸發沖突的必要條件是修改同一個文件且修改的位置非常近,否則Git會自動合並其內容
避免更新代碼導致被還原或覆蓋的解決方案
1、少修改的地方(生產環境、公網測試環境):推薦

 git pull

 


2、進場修改的地方(本地開發環境):推薦 

git stash

 


2、存在兩人或多人同時修改的地方(本地開發環境):推薦 

git stash

 

(下面着重介紹 git stash)

git-stash用法小結

1. git stash會把所有未提交的修改(包括暫存的和非暫存的)都保存起來,用於后續恢復當前工作目錄。
通過git stash命令推送一個新的儲藏,當前的工作目錄就干凈了。stash是本地的,不會通過git push命令上傳到git server上。

2、實際應用中推薦使用 stash 的增強功能,給每個stash加一個message,用於記錄版本,使用 git stash save 取代 git stash 命令。

$ git stash save "test-cmd-stash" Saved working directory and index state On autoswitch: test-cmd-stash HEAD 現在位於 296e8d4 remove unnecessary postion reset in onResume function $ git stash list stash@{0}: On autoswitch: test-cmd-stash

 

3、將緩存堆棧中的第一個stash刪除,並將對應修改應用到當前的工作目錄下。命令 git stash pop


4、git stash pop 的增強 git stash apply ,將緩存堆棧中的stash多次應用到工作目錄中,但並不刪除stash拷貝。

5、查看現有stash git stash list ,在使用git stash apply命令時可以通過名字指定使用哪個stash,默認使用最近的stash(即stash@{0})。

$ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051 Revert "added file_size" stash@{2}: WIP on master: 21d80a5 added number to log

 

6、移除stash 可以使用 git stash drop ,后面可以跟着stash名字。

$ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051 Revert "added file_size" stash@{2}: WIP on master: 21d80a5 added number to log $ git stash drop stash@{0} Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)

 


7、移除stash 的增強命令 使用git stash clear命令,刪除所有緩存的stash。

8、git放棄暫存區的修改

 

暫存區的修改就是已經你已經將文件 add,但是還沒有commit的時候。 此時HEAD仍然指向最近一次提交的commit。 放棄暫存區的修改 git reset HEAD

  

 

 


免責聲明!

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



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