2016-04-08 75 views
1

我正在使用PyCharm編寫Python項目,其中包括我的項目中的.idea文件夾。爲什麼我不能讓git忽略文件夾?

由於該項目的維護者不希望貢獻者編輯項目的.gitignore,我添加了一個.gitignore_global文件~/{myuser}兩行:

# comment line because git has a bug where sometimes the first line is ignored 
.idea/ 

我跑的命令

git config --global core.excludesfile "C:\\Users\\{myuser}\\.gitignore_global" 

運行git status,仍然出現以下內容:

Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

     .idea/ 

我試圖同時運行這些命令:

git rm --cached -r .idea/ 
git update-index --assume-unchanged .idea/ 

在錯誤的結果:

fatal: pathspec '.idea/' did not match any files 

第二個變化無關。

如何讓git忽略此文件夾?

回答

1

問題是我想要忽略的目錄名後的不必要的空格字符...

原來的全局排除文件:

# 
.idea/ <--- there's a space here 

的固定使用(沒有空格):

# 
.idea/ 

我發誓這是問題...謝謝大家對你的幫助呢!

如果這有助於在未來的某個人,我使用的是Windows 7的

0

如果Git沒有跟蹤文件夾,它不應該出現在github中。你有沒有嘗試檢查存儲庫,以確保它實際上傳?如果是這樣,請嘗試將.idea文件夾移出項目,進行提交,然後使用全局.gitignore將其重新放回。如果文件的更改沒有被跟蹤,但它已存在於存儲庫中,它將保留在存儲庫中。它只是不會更新。

+0

Git版本1.9.5.msysgit.1他表明,它出現在'未追蹤文件:'部分,所以它不回購,因爲它應該是,唯一的問題似乎忽略規則不起作用。 – kan

0

我認爲問題是git config --global core.excludesfile "C:\Users\{myuser}\.gitignore_global",因爲您使用的是\,它是轉義字符。嘗試加倍。

+0

我的不好,我確實使用過雙打。 –

+0

@AvivCohn然後嘗試不加倍...因爲它取決於你在用什麼 - cmd.exe或git bash。剛剛檢查了我的本地文件,我的.gitconfig文件在'[core]'部分下有'excludesfile = C:\\ temp \\ boo',並且它工作正常。 – kan

0

文件.gitignore只會影響尚未被添加的文件,.idea/也會影響您的回購或否?

如果您.idea/文件夾尚未跟蹤,做git rm -r --cached path_to_your_folder/

0

永遠不使用update-index --asume-unchanged將可能出現做你想要什麼,但你很可能更多的冒險,而不是文件。

您的描述很可能似乎是core.excludesfile值的問題。 您是否在Windows或Cygwin Git中使用Git?如果後者你可能需要設置cygwin路徑,而不是windows路徑。

另外,你也可以讓你的排除在.git/info/excludes雖然然後他們當然只爲這個回購,而不是像你試過它所有的回購。

您也可以使用命令git check-ignore .idea/ --no-index -v -n或類似命令診斷結果。