2011-04-27 60 views
4

我与Rails的工作内容,并增加了tmp目录和Gemfile中对我的.gitignore。但每次我改变它,git status告诉我,它改变了。在两台机器上。在我的开发人员机器和服务器上。有点讨厌。Git是不使用的.gitignore

.gitignore内容:

.DS_Store 
data/export/*.csv 
tmp/* 
*.rbc 
*.sassc 
.sass-cache 
capybara-*.html 
.rspec 
/.bundle 
/vendor/bundle 
/log/* 
/tmp/* 
/db/*.sqlite3 
/public/system/* 
/coverage/ 
/spec/tmp/* 
**.orig 
config/*.yml 
rerun.txt 
pickle-email-*.html 
Gemfile* 
+1

.gitignore的内容是什么? 。 – manojlds 2011-04-27 20:35:55

+0

.DS_Store 数据/导出/ *以csv TMP/* * .rbc * .sassc .sass缓存 水豚 - * HTML .rspec /.bundle /供应商/捆 /日志/ * 的/ tmp/* /db/*.sqlite3 /公/系统/ * /报道/ /规格/ tmp目录/ * **。原稿 配置/ *。阳明 rerun.txt 泡菜的电子邮件 - *。html Gemfile * – 2011-04-27 20:36:48

+0

当然有换行符。 – 2011-04-27 20:37:02

回答

13

这可能是Git是已经跟踪文件。尝试git rm荷兰国际集团他们:

git rm --cached Gemfile 

(虽然你可能应该有版本控制下的Gemfile)

,为TMP​​目录:

git rm -r --cached tmp 

--cached是,这样的工作文件将不会被删除,并且-r是递归地从目录中删除。

在此之后的git应该尊重.gitignore

+0

以这种方式删除Gemfile工作。 tmp dir没有。致命的:试图当我不断收到此错误pathspec“TMP”在'没有匹配任何文件 – 2011-04-27 21:20:06

+0

@ulf听起来像是你没有任何文件tmp'被跟踪。尝试添加/更改那里的文件,看看是否git通知。 – matt 2011-04-27 21:53:57

+0

这似乎工作。谢谢 :-)。 – 2011-04-28 09:53:32

1

如果您tmp和的Gemfile目录已经版本,Git会不会忽略它们。

要么unversion他们做一样的东西:

git rm -r --cached tmp 
git commit -am "removing tmp" 

(--cached,让他们留在你的工作目录)

,或者忽略他们不忽略(:))或做类似:

git update-index --assume-unchanged tmp/** 

上面的命令“暂时忽略”的转变到已经版本的文件夹。

+0

据我所知(它可能是错的,懒得去测试它),即使它们已经被版本化了,git也会忽略这些变化。所以是的,你是对的,他们仍然是版本控制的,但不是,他们不应该出现在'git status'上。 – KingCrunch 2011-04-27 20:43:05

相关问题