git忽略某文件(commit時不提交該文件)


在使用HbuilderX開發小程序時,會將代碼編譯打包為一個unpackage文件,這個文件將在微信開發者工具中打開

而這種打包的文件是可以不要commit的,如果在創建倉庫之初,沒有將這個文件夾忽略掉,后面再.gitignore中添加也是不管用的,現在可以使用下面的方法解決:

第一步:git rm -r -n —cached ./unpackage  (-n是為了不刪掉文件)
第二步:git rm -r —cached ./unpackage
第三步:修改.gitignore文件
第四步:提交,push unpackage 及 .gitignore文件
最后 本地修改文件,再提交發現已經成功了.

 

需要特別注意的是:
1).gitignore只能忽略那些原來沒有被track的文件,如果某些文件已經被納入了版本管理中,則修改.gitignore是無效的。
2)想要.gitignore起作用,必須要在這些文件不在暫存區中才可以,.gitignore文件只是忽略沒有被staged(cached)文件,
   對於已經被staged文件,加入ignore文件時一定要先從staged移除,才可以忽略。

 

額外說明:git庫所在的文件夾中的文件大致有4種狀態

Untracked:

未跟蹤, 此文件在文件夾中, 但並沒有加入到git庫, 不參與版本控制. 通過git add 狀態變為Staged.
 
Unmodify:
文件已經入庫, 未修改, 即版本庫中的文件快照內容與文件夾中完全一致. 這種類型的文件有兩種去處, 如果它被修改,
而變為Modified. 如果使用git  rm 移出版本庫, 則成為Untracked文件
 
Modified:
文件已修改, 僅僅是修改, 並沒有進行其他的操作. 這個文件也有兩個去處, 通過git add可進入暫存staged狀態,
使用git checkout 則丟棄修改過, 返回到unmodify狀態, 這個git checkout即從庫中取出文件, 覆蓋當前修改
 
Staged:
暫存狀態. 執行git commit則將修改同步到庫中, 這時庫中的文件和本地文件又變為一致, 文件為Unmodify狀態.
執行git reset HEAD filename取消暫存, 文件狀態為Modified
 
Git 狀態 untracked 和 not staged的區別
1)untrack     表示是新文件,沒有被add過,是為跟蹤的意思。
2)not staged  表示add過的文件,即跟蹤文件,再次修改沒有add,就是沒有暫存的意思


免責聲明!

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



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