この記事では、ストレージ容量を最適化し、パフォーマンスを向上させるために、Git リポジトリから不要なファイルを特定して削除するための戦略とツールを提供します。ここで説明する主な問題は、未解決オブジェクト、大きなファイル、および untr の蓄積です
git リポジトリから不要なファイルを特定して削除するには、次の手順に従います:
git gc --prune
to remove dangling objects: This command removes objects that are unreachable from any commit. Dangling objects can accumulate over time when you delete branches or commits.git filter-branch
to rewrite history: This command allows you to remove or modify specific files from the entire history of a branch. However, it's important to proceed cautiously as it rewrites the history of the repository.git ls-files -s
to identify large files and consider moving them to a separate location.git clean -n
to list untracked files and git clean -f
to remove them.After a merge or branch deletion, follow these cleanup best practices:
git branch -d <branch-name>
to delete the branch.git push <remote-name> --delete <branch-name>
.git reflog expire --expire=<duration>
to prune old entries in the reflog.git reset --hard <commit-hash>
このコマンドは、どのコミットからも到達できないオブジェクトを削除します。ブランチやコミットを削除すると、ダングリング オブジェクトが時間の経過とともに蓄積される可能性があります。git filter-branch
を使用して履歴を書き換えます:git ls-files -s
を使用して大きなファイルを特定し、別の場所に移動することを検討してください。
git clean -n
を使用して追跡されていないファイルをリストし、git clean -f
を使用してそれらを削除します。
git Branch -d <branch-name>
を使用します。git Push を使用します。 --delete <branch-name>
.🎜🎜🎜reflog をプルーニングします:🎜 reflog は、リポジトリに対して行われたすべてのアクションを記録します。 reflog 内の古いエントリを削除するには、git reflogexpire --expire=<duration>
を使用します。🎜🎜🎜Reset HEAD:🎜 リポジトリを特定のコミットに戻したい場合は、 を使用します。 git replace --hard <commit-hash>
。これにより、コミットされていない変更がすべて削除され、指定されたコミットが新しい HEAD になります。🎜🎜🎜自動クリーンアップ ツール🎜🎜 git リポジトリのクリーンアップ プロセスを自動化するために利用できるツールとスクリプトがいくつかあります:🎜🎜🎜🎜git-cleanup:🎜 コマンド-追跡されていないファイル、空のディレクトリ、reflog の削除など、さまざまなクリーンアップ コマンドを提供するライン ツール。🎜🎜🎜git-prune:🎜 未解決のコミット、タグ、ブランチを削除するのに役立つシェル スクリプト。🎜🎜🎜git-スイープ: 🎜 Git リポジトリから参照されていない大きなファイルを識別して削除する Ruby スクリプト。🎜🎜🎜git-annex:🎜 大きなファイルを追跡しながらメイン リポジトリから移動できるツール。🎜🎜以上がgit ウェアハウスのクリーンアップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。