2013-03-20 151 views
1

我有一個標準的.gitignore文件,我將其包含在每個項目中。其中一條線忽略了「bin」。.gitignore仍然忽略刪除的項目

恰巧,在這個特定的項目中,我其實想要一個/ bin目錄。我從.gitignore中刪除了「bin」,但git仍然不會讓我添加/ bin目錄。它仍然認爲它應該忽略它,即使該字符串已從.gitignore中刪除。

我找到的所有答案都是關於如何忽略以前提交的內容,但是我沒有找到關於如何添加以前忽略的內容的任何信息。

所以:我該如何告訴git取消以前忽略的某些內容?

+0

是否有你什麼/ bin目錄? – pktangyue 2013-03-20 07:57:41

+0

是的,/ bin中的文件 – 2013-03-20 08:29:24

回答

2
  • 確保您的.gitignore不忽略bin目錄了。要確認您可以從回購站的根目錄運行git ls-files . --ignored --exclude-standard --others以列出git忽略的所有文件。

  • 另一種方式做同樣的事情,如果你嘗試添加使用git addbin目錄,而不給人一種-f說法,混帳會抱怨這些文件目前正在忽略。如果你確實看到這個消息,你仍然有一個.gitignore的地方,這似乎會導致git忽略bin目錄。

  • 另外請記住,git不版本空目錄。您需要在git目錄下至少有一個文件才能在版本控制下進行跟蹤。在這種情況下,在bin目錄下創建一個虛擬文件,該文件說git add bin/.dummy。這樣你就可以確保bin目錄是在克隆或結帳時創建的。根據您的意見

UPDATE

  • 該文件的.gitignore可以在倉庫多個目錄存在於包括或排除不同的目錄級別的規則。從您的回購的根目錄下,運行find . -type f -name .gitignore以查看您的回購中是否有其他gitignore文件。

也有使用以下的git的配置選項來指定gitingore一個全球性的方式,檢查,看看是否在您的設置存在這樣的配置:

git config --global --get core.excludesfile 
+0

嗯。很好的答案。不幸的是,這些建議都沒有提出。我不知道通過git config的全局gitignore。看起來像一個可能的解決方案,但事實證明,「bin」不在那裏。 git ls-files建議沒有任何返回。 bin目錄中有文件。項目中只有一個gitignore。 – 2013-03-20 09:05:42

+0

@WarrenBenedetto - 除了查看'.git/info/exclude'之外,你可能還想看看下面兩個配置選項'git config --get --local core.excludesfile'和'git config --get - -global core.excludesfile'來查看是否有其他文件被用作gitignore文件。 – Tuxdude 2013-03-21 04:00:40

+0

我想通了。我已經從.gitignore中刪除了bin,但直到現在我才注意到[Bb]。這解釋了它。謝謝你的幫助! – 2013-03-21 04:56:17

0

注意太確定你的意思是'忽略'它。你的意思是當你輸入'git status'bin /目錄不會顯示爲未跟蹤或修改?

嘗試明確地將其添加到git也許?

git add bin/ 
git commit -m "Adding the bin directory" 
+0

$ git add bin/ 您的某個.gitignore文件會忽略以下路徑: bin 如果您確實想要添加它們,請使用-f。 fatal:沒有添加文件 – 2013-03-20 08:27:00

+0

使用-f作品,但我仍然好奇它爲什麼認爲'bin'在.gitignore中被刪除。覺得應該有一些命令來重新加載/刷新.gitignore什麼的,但我沒有看到類似的東西。 – 2013-03-20 08:28:19

+0

https://help.github.com/articles/ignoring-files有一些有用的信息。我建議你看看你的全局忽略文件。 – 2013-03-20 08:37:56

1

最有可能你有一個全球GIT中忽略文件 - 通常在~/.gitignore。您可以檢查這跟:

-> git config core.excludesfile  
/home/andy/.gitignore 

您可以反無視規則,或者最簡單的解決方法就是增加的bin文件,並繼續前進:

git add -f bin 
git commit -m "Adding my bin files" 
+0

全局gitignore是使用全局配置選項'core.excludesfile'獲得的,也可以是除'〜/ .gitignore'外的其他任何東西;) – Tuxdude 2013-03-20 08:39:13

+1

我只是想指出一個更正。你的答案的第一個版本(在編輯之前)沒有提及任何關於'core.excludesfile'的內容。但現在沒關係,因爲你已經將這部分添加到了你的答案中。 – Tuxdude 2013-03-20 08:50:31