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

問題場景

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

圖1 正常代碼提交流程


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

  

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刪除服務器上這兩類文件。 
 
ide

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

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

首先考慮如下示例: 
 
sqlite

這是路徑問題: 
blog

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

這樣就能夠刪除成功了。

 

以上爲我的的一些心得,若有總結的錯誤請諒解並指出錯誤或更好的解決辦法。

想要了解更多,請關注我的微信公衆號  夜無瀾。

相關文章
相關標籤/搜索