web-dev-qa-db-ja.com

BFGを使用して保護されたコミットを削除する方法

BFG( https://rtyley.github.io/bfg-repo-cleaner/ )でリポジトリをクリーニングすると、次のことが発生しました:

Protected commits
-----------------

These are your protected commits, and so their contents will NOT be altered:

 * commit ******* (protected by 'HEAD')
10
rcde0

--no-blob-protectionでBFGを実行すると、修正されました。

ドキュメントはここにあります: https://rtyley.github.io/bfg-repo-cleaner/ しかし、エラーを乗り越える手段として、彼らが実際にそれをどこで呼び出しているのかわかりませんでした。

注:私の場合、BFGを使用せずにファイルを手動で削除しようとしたため、--no-blob-protectionを使用する必要がありました。

23
technocrat

BFGと同じくらい強力なツールを使用する場合は、そのドキュメント(これを詳しく説明しています)を読むことを強くお勧めしますが、質問に答えてください。

デフォルトでは、BFGは「現在の」コミットを変更しません。その作成者は、唯一の安全なワークフローは、リポジトリの現在の状態を手動でクリーンアップし、すべてが引き続き機能することをテストしてから、BFGを使用して、現在の状態(手動で修正済み)をそのままにして履歴をクリーンアップすることであると考えています。

保護が不要だと思われるユースケースがある場合は、保護をデフォルトから変更する(またはオフにする)ために使用できるオプションがあります(私が頻繁に行っているように)。ただし、thoseを使用する場合は、必ずドキュメントを読む必要があります。

11

最初にBFGとは何ですか?[〜#〜] bfg [〜#〜]は、Gitリポジトリ履歴から不良データをクレンジングするためのgit-filter-branchのより簡単で高速な代替手段です:*クレイジービッグファイルの削除*パスワード、資格情報、その他のプライベートデータの削除。

あなたは過去にいくつかの間違いを犯したが、今はあなたの行為を片付けたとしましょう。したがって、BFGは、最新のコミットが適切であり、履歴から削除したいダーティファイルがまだ残っていないことを前提としています。 BFGによるこの仮定は、作業を保護し、BFGがリポジトリの履歴を変更するだけであり、プロジェクトの現在のファイルに干渉しないことを知って安心します。デフォルトでは、HEADブランチは保護されており、その履歴はクリーンアップされますが、最新のコミット(「ヒント」)は保護されたコミットであり、ファイル階層はまったく変更されません。

詳細については、これを参照してくださいリンク

0