2010-05-24 62 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