2

私の git リポジトリが少し大きくなり始めています。単一の SSD に、リポジトリと、非常に多くのスペースを占有する大量のバイナリ ファイルを含む 2 つのクローンがあります。

毎日、cron ジョブがマスター クローンをリポジトリにプッシュし、長期間にわたる変更の履歴を作成します。

ただし、1 か月以上経過したものは、もう保持する価値はありません。これらの古いコミットを削除して、多くのスペースを節約できるようにしたいと思います...プログラムで。

rebaseと を使用した例、 を使用しsquashた例gc、およびその他の非常にファンキーな例をたくさん見てきました。これらのほとんどでは、削除するコミット タグを手動で入力する必要があります。

リポジトリから 30 日以上前のすべてのコミットを削除したいと考えています (他の場所でも履歴を折りたたむようにフックを構成する必要があると思います)、毎月 bash スクリプトから削除します。

4

1 に答える 1

0

わかりました、これはどうですか。最初のコミットを取得してから、リベースを開始します。好みに合わせてコミットを削除するだけです。

# Get first commit
git log --format=%H | tail -1 | xargs git rebase -i

参照

于 2013-01-09T01:06:50.540 に答える