0

私は次の問題に対する最良の答えを探しています:

新しいブランチを作成するときは、常にフォルダーを削除する必要があります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はこの混乱で役に立たなくなり始めます。この行をgitstatusから隠したいのですが、このファイルは実際に削除する必要があります。

この削除されたファイルをリモートリポジトリにプッシュしたくないので、それをコミットしたくありません。

4

2 に答える 2

3

実際には、そもそも Git にこれらのアセットを含めるべきではありません。

Capistrano のようなデプロイ ソリューションを使用している場合は、リモート マシンへのデプロイ中にアセットをプリコンパイルできるため、アセットを Git リポジトリに置く手間を省くことができます。

capistrano を使用してデプロイ中にアセットのコンパイルを有効にするには、以下を capfile (deploy.rb) に追加するだけです。

load 'deploy/assets'

これで、サーバー capistrano にデプロイするたびに、デプロイ中にサーバー上でコンパイルが行われます。

次に、public/assetsディレクトリをgitから削除して、それらを追加するだけです.gitignore

あなたの質問に直接答えなくて申し訳ありませんが、あなたが求めているのは、原因に対処していない症状の救済策です. もちろん、Git にアセットを持っている正当な理由がある場合を除きます。そうであれば、理由を明記してください。より良い解決策を見つけることができるかもしれません。

于 2012-09-13T09:38:34.307 に答える
1

まず、あなたがそれをしなければならないのはやや怪しいですが、何でも。

次のように、コマンドを使用して、一致するすべての(間のもの@...@)行を削除できます。:global

:global@^#\s\+deleted:\s\+public/assets/@delete _

これを自動的に行うには~/.vimrc、Gitコミットファイルタイプのautocmdを(で)作成します。

:autocmd FileType gitcommit :global...

または元のコマンドをスクリプトに入れます~/.vim/ftplugin/gitcommit_cleanup.vim

于 2012-09-13T09:49:02.543 に答える