Git не использует содержимое .gitignore - PullRequest
4 голосов
/ 28 апреля 2011

Я работаю с Rails и добавил каталог tmp и Gemfile в мой .gitignore.Но каждый раз, когда я меняю это, git status говорит мне, что это изменилось.На обеих машинах.На моей машине разработчика и на сервере.Вид раздражает.

Содержимое .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*

Ответы [ 2 ]

15 голосов
/ 28 апреля 2011

Возможно, git уже отслеживает файлы. Попробуйте git rm их:

git rm --cached Gemfile

(хотя вы, вероятно, должны иметь Gemfile под управлением версией)

и для каталога tmp:

git rm -r --cached tmp

--cached означает, что рабочий файл не будет удален, а -r - рекурсивное удаление из каталога.

После этого мерзавец должен уважать .gitignore.

1 голос
/ 28 апреля 2011

Если ваши каталоги tmp и GemFile уже версионированы, Git не будет их игнорировать.

Либо поверните их, выполнив что-то вроде:

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

(- кэшируются так, чтобы ониостанется в вашем рабочем каталоге)

, или игнорируйте, что они не игнорируются (:)), или выполните что-то вроде:

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

Приведенная выше команда «временно игнорирует» изменения впапки, которые уже версионированы.

...