由于Rails'tmp/cache/assets
文件夹和git不忽略tmp/*
或tmp/
,我遇到了一些部署问题。我的整个.gitignore
是:
*.rbc
*.sassc
.sass-cache
capybara-*.html
.rspec
/.bundle
/vendor/bundle
/log/*
/tmp/*
/db/*.sqlite3
/public/system/*
/coverage/
/spec/tmp/*
**.orig
rerun.txt
pickle-email-*.html
取自GitHub gitignore repo。我该怎么办才能修复它?由于我的服务器上的本地更改(在tmp/
文件夹中),例如error: Your local changes to 'tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705' would be overwritten by merge. Aborting.
,我收到大量错误,因此我无法在我的开发机器上部署:(
答案 0 :(得分:8)
启动项目后是否添加了.gitignore?如果在添加.gitignore之前已经存在tmp/cache/assets/whatever
,则它仍然会在回购邮件中。
尝试git rm -r tmp && git commit
从repo中删除整个tmp
目录。
此时尝试部署以查看部署是否来自已知良好状态。如果它仍然不起作用,你知道还有其他问题。
如果一切正常,则不应再接收tmp
的新更改。
另外,正如@thenetimp指出的那样,您当前的.gitignore将只会忽略/tmp
,而不会忽略something/tmp
。我不确定这是不是你的意图。
答案 1 :(得分:4)
删除/tmp/
前面的正斜杠,它应为tmp/
答案 2 :(得分:1)
在https://github.com/github/gitignore/blob/master/Rails.gitignore
上查看示例.gitignore文件 找到了一篇好文章