git按需過濾提交文件的一個細節


問題場景

用git管理代碼時,作為git小白的我總會遇到一些無法理解的問題,在請教了一些高手后終於解開了疑惑,參考以下場景: 
1.比如我們已在電腦1上完成用vs編輯項目、添加、提交到服務器的完整流程,如下圖1 
 

圖1 正常代碼提交流程


2.git status命令查看未提交項,則會顯示沒有可提交項; 

  

3.再次用vs編輯器打開項目,可以無任何操作; 
4.再次使用git status命令查看未提交項,如下圖 
 

從上圖可以看到即使你沒有做任何操作,也會有很多未被提交的文件被提示出來,如果有時因為我們疏忽的以為文件沒有變化(其實在打開工程的那一刻后台文件已發生了變化),關電腦然后在其他電腦(電腦2)上編輯本工程,再按圖1的流程將代碼提交。再到電腦1上git pull時,就會出現還有本地文件未被add的問題。

解決問題

要解決此問題,需要在.gitignore文件中添加一些需要屏蔽的一些編輯器后台操作后的文件類型或名稱,使無意中打開工程瀏覽代碼后無副作用。 
如果我們在上傳第一個代碼版本時沒有屏蔽如.suo、.ide之類的文件,即使后面將這些文件類型添加到.gitignore,使用git status命令始終會一直出現未提交關於這些文件的更改,如下圖。 
 

要解決此問題,首先要將.suo或.ide文件類型加入到.gitignore文件,然后使用git rm -r --cached filename刪除服務器上這兩類文件。 
 

這樣再次使用git status命令查看未提交文件時,就會只顯示你編輯過的文件,編譯器后台操作的文件就不會再提示了。

屏蔽.ide文件之[為什么刪除ide文件時提示沒有匹配到文件呢?]

首先考慮以下示例: 
 

這是路徑問題: 

ide文件都在RealEstate目錄下了,路徑要改成最后框選的那個。 
刪除命令如下: 
git rm -r --cached /i/mypros/RealEstate/.vs/RealEstate/v16/Server/sqlite3/storage.ide
 

這樣就可以刪除成功了。

 

以上為個人的一些心得,如有總結的錯誤請諒解並指出錯誤或更好的解決辦法。

想要了解更多,請關注個人微信公眾號  夜無瀾。

 


免責聲明!

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



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