我正在寻找以下问题的最佳答案:
当我创建新分支时,我必须始终删除文件夹public/assets/
(Ruby on Rails,我们仅在部署到生产之前预编译资产)所以这给了我git状态大约500行,如下所示:
...
# deleted: public/assets/tinymce/tiny_mce_src.js
# deleted: public/assets/tinymce/utils/editable_selects.js
# deleted: public/assets/tinymce/utils/form_utils.js
# deleted: public/assets/tinymce/utils/mctabs.js
# deleted: public/assets/tinymce/utils/validate.js
...
所以我的vim-fugitive开始对这个烂摊子毫无用处。我想从git状态隐藏这些行,但实际上应该删除这些文件。
我不想提交,因为我不想将此删除的文件推送到远程仓库。
答案 0 :(得分:3)
实际上你应该不在你的Git中首先拥有这些资产。
如果您正在使用像Capistrano这样的部署解决方案,则可以在远程计算机上部署期间预编译资产,从而避免将其置于Git存储库中的麻烦。
要在使用capistrano部署期间启用资产编译,您只需将以下内容添加到capfile(deploy.rb):
load 'deploy/assets'
现在无论何时部署到服务器,capistrano都会在部署期间在服务器上进行编译。
然后,您只需从git中删除public/assets
目录,然后将其添加到.gitignore
很抱歉不直接回答您的问题,但您所要求的是针对无法解决问题的症状的补救措施。 除非您有充分的理由说明为何拥有Git中的资产,如果是,请说明原因,我们可以找到更好的解决方案。
答案 1 :(得分:1)
首先,你必须做到这一点有点可疑,但无论如何。
您可以通过@...@
命令删除所有匹配(:global
)行之间的内容,如下所示:
:global@^#\s\+deleted:\s\+public/assets/@delete _
要自动执行此操作,请为Git提交文件类型创建一个autocmd(在~/.vimrc
中):
:autocmd FileType gitcommit :global...
或将原始命令放入脚本~/.vim/ftplugin/gitcommit_cleanup.vim