Git is not using the contents of .gitignore

天涯浪子 提交于 2019-12-22 08:22:38

问题


I’m working with Rails and added the directory tmp and the Gemfile to my .gitignore. But every time I change it, git status tells me, that it changed. On both machines. On my developer machine and on the server. Kind of annoying.

Contents of .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:


It could be that git is already tracking the files. Try git rming them:

git rm --cached Gemfile

(although you probably should have the Gemfile under version control)

and for the tmp dir:

git rm -r --cached tmp

the --cached is so that the working file will not be deleted, and -r is to recursively remove from a directory.

After this git should respect .gitignore.




回答2:


If your tmp and GemFile directories are already versioned, Git will not ignore them.

Either unversion them, by doing something like:

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

( --cached so that they will remain in your working directory)

, or ignore that they are not ignored ( :) ) or do something like:

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

The above command "temporarily ignores" the changes to the folders that are already versioned.



来源:https://stackoverflow.com/questions/5810233/git-is-not-using-the-contents-of-gitignore

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!