2011-04-27 70 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