2010-05-24 53 views
26

我想從現有的文件夾中創建一個新的git存儲庫。我在該文件夾的根目錄中創建了一個.gitignore文件。但如果我說.gitignore不爲我工作

git add * 
git commit 
git push 

應該忽略的文件仍然會提交到遠程存儲庫。我在Windows上。 我還購買了SmartGIT的許可證。它似乎也忽略了.gitignore。我必須手動選擇要提交的新文件。

我在做什麼錯?

+3

你使用的是什麼版本的Git?另外,你提到你正在使用Windows,所以路徑名分隔符總是麻煩。你可以發佈一個你想要的'.gitignore'文件的例子嗎? – 2010-05-25 04:01:24

+2

你能編輯你的問題併發布你的'.gitignore'文件的內容嗎? '.gitignore'將使用底層操作系統特定的'fnname()'方法:請參閱實例:http://stackoverflow.com/questions/2330471和http://stackoverflow.com/questions/1470572 – VonC 2010-05-25 04:02:37

+0

我還沒有聽說過SmartGIT - 我使用MSysGit和TortoiseGit,他們似乎很好地處理.gitignore文件。如果問題與SmartGIT有關,那麼我會嘗試MSysGit和TortoiseGit的替代方案。 – 2010-05-25 10:23:06

回答

1

您的排除文件掩碼可能不準確。

+0

我'從另一個項目中複製.gitignore文件,它在哪裏工作。 – 2010-05-24 23:06:49

+0

。gitignore是否可供git用戶訪問?也許這是一個權限問題? – takeshin 2010-05-25 06:27:00

20

您的文件是否已被跟蹤? .gitignore僅對未跟蹤文件發表評論,但不會阻止跟蹤的文件被跟蹤。

+0

不,我嘗試了幾次新鮮的新庫。 – 2010-05-24 22:59:30

27

請嘗試使用「git add .」。

而且,它爲我工作(在Linux上):

 
$ git init 
$ echo foo > .gitignore 
$ echo foo > foo 
$ echo bar > bar 
$ git add -v * 
The following paths are ignored by one of your .gitignore files: 
foo 
Use -f if you really want to add them. 
fatal: no files added 
12

我也有問題,用的.gitignore。我檢查了列出的鏈接答案,其中修復了一半問題。

真正讓gitignore爲我充分工作的是在文件的第一行添加註釋。 Git沒有解析位於第一行的排除。

乾杯

+2

在Windows上添加評論也適用於我。爲你+1! – 2012-03-29 01:06:00

+1

可悲的是我第一次想到了這個......然後找到你的評論。現在來看看這是不是應該修復的錯誤! – altendky 2012-10-04 14:34:12

25

你的文件仍然必須被跟蹤,你可以通過做git status會告訴你,你的文件被修改,即使它在的.gitignore
你需要這樣做,請參閱:

git update-index --assume-unchanged [path_to_file] 
4

我在windows上面對的一個竅門是使用echo(按照JakubNarębski的答案),你必須小心空格。

正如您在下面可以看到重定向操作符之前的任何空間對實際忽略有影響。

C:\test>dir /B 
TOBEIGNORED 

C:\test>echo TOBEIGNORED > .gitignore 
C:\test>git status 
[...] 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  .gitignore 
#  TOBEIGNORED 
C:\test>echo TOBEIGNORED> .gitignore 
C:\test>git status 
[...] 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  .gitignore 
nothing added to commit but untracked files present (use "git add" to track) 
+1

是的,不要在WINDOWS上使用ECHO,否則你將浪費3個小時,找出爲什麼.gitignore不起作用 – 2014-08-22 12:58:42

0

我在MacOSX上使用git版本1.7.12.3,並且也沒有考慮到.gitignore的第一行。只需添加評論作爲第一行。

4

您可以創建一個UTF-8編碼的文本文件。嘗試將其保存爲ANSI編碼。在git bash中,可以使用vi -b進行驗證。

0

註釋行作爲文件的第一行很關鍵!我花了相當多的時間試圖排除文件,只發現GIT忽略忽略文件中的第一行。

+0

這肯定不是問題。幾乎沒有任何我的gitignore文件(~50)在第一行中有評論,並且它們都完美無缺地工作。 – mhutter 2015-08-19 17:24:36