20

一部のディレクトリに(開発にとって)50,000を超える重要でないファイルがあるWebサイトプロジェクトがあります。

/website.com/files/1.txt
/website.com/files/2.txt
/website.com/files/3.txt
/website.com/files/etc.txt

/filesにあるものはすでにリポジトリにあります。ローカルコピーの/files内のすべてのファイルを削除したいのですが、gitで無視して、Webサーバーでプルを実行したときにファイルが削除されないようにします。

何か案は?

4

4 に答える 4

15

ディレクトリ全体を無視しても機能しませんでした。私はこれをしなければなりませんでした:

for i in `git status | grep deleted | awk '{print $3}'`; do git update-index --assume-unchanged $i; done
于 2011-07-28T09:33:02.893 に答える
10

以下のコードは、削除されたファイルと変更されたファイルで機能し、 git statusを実行したときにそれを無視します。

 git update-index --assume-unchanged dir-im-removing/

または特定のファイル

git update-index --assume-unchanged config/database.yml

git で変更された (しかしコミットされていない) ファイルを無視しますか?

注意: 「 git commit -am 」を実行したときに削除されたファイルに関する上記の提案には、削除されたファイルが含まれています!

私にとってうまくいく解決策は、ファイルを削除する代わりに、コンテンツを空白にすることです。これは、.htaccess ファイルをミュートするために使用したものです。

于 2010-08-10T21:56:21.237 に答える
3

サブリポジトリの作成は1つの解決策ですが、そのサブリポジトリをサブモジュールにする必要があります。

そのように:

  • 通常のコンテンツとその「ファイル」コンテンツの間のリンクを維持します
  • 'files'コンテンツが1日進化した場合、その進化をメインリポジトリに登録できます
  • git submodule update" "なしで(つまり、' files'コンテンツを入力せずに)メインリポジトリをチェックアウトできます
  • 展開時には 、適切なバージョンの' 'コンテンツを取り戻すには後で十分git submodule updateです 。git submodule initfiles
于 2010-04-27T04:12:32.487 に答える
2

わかりました。解決策を見つけました。サブディレクトリに新しいリポジトリを作成するだけで、親リポジトリはそれらを無視します。

于 2010-04-27T03:04:10.997 に答える