0

私の git リポジトリには、以前のリビジョンと削除されたファイルをすべてリポジトリから削除したい大きなアセットがたくさんあります。ただし、そのディレクトリ内のファイルの最新のコピーを保持する必要があります。

これまでのところ、以前に削除されたファイルをスクラブし、最新のリビジョンを保持する必要がない方法だけを見てきました。

4

2 に答える 2

1

それよりも簡単です。ルートの .git フォルダーを削除するだけです。新しいリポジトリを作成してチェックインします。また、バージョン管理の仕事は以前のバージョンをすべて保持することであり、それらを削除することではないことに注意してください。

于 2021-06-16T16:48:34.340 に答える
0

ファイルストレージに git を使用していますが、これは意図したものではありません。

変更履歴を気にしない場合はtar.gz、大きなアセットを含むファイル (または適切なアーカイブ/圧縮方法) を作成し、git リポジトリから参照します。おそらくスクリプトまたは Makefile を使用して、それをコピーしてアンパックします。適切な場所。

履歴からファイルを完全に (現在のバージョンを含めて!) 削除するには、次の 2 つの手順があります。

  1. すべてのコミットからファイルを削除します。git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch FILENAME_WITH_PATH' --prune-empty --tag-name-filter cat -- --all

  2. ファイル オブジェクトのリポジトリをクリーンアップ/パージします。rm -rf .git/refs/original/; git reflog expire --expire=now --all; git gc --prune=now; git gc --aggressive --prune=now

リモートリポジトリで作業していて、それもクリーンアップする必要がpush -fある場合は、十分ではないかもしれません。ゼロから再作成し、ローカル (クリーン) コピーをプッシュする必要があります。

于 2013-11-01T15:33:11.823 に答える