一、Git提供了文件忽略功能。當對工作區某個目錄或者某些文件設置了忽略后,git將不會對它們進行追蹤
HELP:如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件
問題:最近在github做一個項目,每次成生成的log日志文件和本地IDE的.idea/workspace.xml,每次提交說沒有跟蹤文件,更郁悶的的我的項目有在本地虛擬機,有時候會出現沒有權限跟蹤文件。
今天特意解決下問題:
(1) 檢查當前文件狀態 要查看哪些文件處於什么狀態,可以用 git status 命令,可以看出intellij idea 的文件.idea/workspace.xml 也提示沒有被跟蹤的信息
(2)如果已經不幸之前commit workspace.xml 的話,必須執行以下命令:git rm --cached .idea/workspace.xml
(3)現在我們通過git .gitignore文件,建立.gitignore文件,在項目根目錄下創建一個名為.gitignore的文件(注意文件的前面有個點),用於記錄忽略規則
注:windows下不可以按常規方法新建.gitignore文件,需要在命令行中進行創建:echo >.gitignore,另外git base下的命令如下:touch .gitignore
(4)編寫忽略規則(由於IDE比較麻煩,我就直接使用git 客戶端進行編輯了),添加的規則如下所示,針對.log為文件和.xml文件進行了忽略規則
更多規則可以連接這里:http://blog.csdn.net/yonnangel/article/details/50115059
(5)再次查看狀態,已經不在跟蹤的局域了,這說明你現在的工作目錄相當干凈。換句話說,所有已跟蹤文件在上次提交后都未被更改過。
(6)總結:這樣子就可以避免每次切換不同的分支而導致的都要跟蹤一次日志文件和IDE的.idea/workspace.xml 文件(我都是git stash 的)
二、刪除遠程或者本地的一個文件
問題:還是上面的原因,因為我以前已經把日志文件提交到了github之上,現在要刪除這個文件,以后不要在提交這些無用的文件了
(1)查看遠程文件是結果如何刪除這個遠程文件來
(2)使用 Git rm 命令即可,有兩種選擇:
【1】一種是 git rm --cached "文件路徑",不刪除物理文件,僅將該文件從緩存中刪除;
【2】一種是 git rm --f "文件路徑",不僅將該文件從緩存中刪除,還會將物理文件刪除(不會回收到垃圾桶)
(3)在這里我們使用第一種,
先執行命令:git rm --cached .idea/workspace.xml 刪除緩存文件
再查看當前工作區裝填。操作后的結果如圖所示
(4)最后直接,提交更新,同時push推送到github遠端倉庫
(5)再次查看git項目log文件,已經被刪除掉了
錯誤問題,切換分支
error: Your local changes to the following files would be overwritten by checkout:
.idea/workspace.xml