問題タブ [bfg-repo-cleaner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2171 参照

git - Git/Bitbucket - 履歴/コミット全体からファイルを削除

BFG の指示に従って、レポ/コミット履歴にあってはならないプライベート ファイルを削除しました。

https://rtyley.github.io/bfg-repo-cleaner/

走った

ただし、変更をプッシュすると、マスターブランチがマージされ、ファイルは引き続き表示され、コードは.privateファイルにあり、すべてのコミットはまだ履歴にあります。

リポジトリ全体のコミット履歴などから .private を削除するにはどうすればよいですか?

0 投票する
1 に答える
658 参照

git-rewrite-history - BFG リポジトリ クリーナーを使用した後、BitBucket リポジトリが大きくなります

私の BitBucket リポジトリには、不要な大きなファイルがたくさんありました。それらを削除してから、履歴からそれらを消去して、大きくなりすぎたレポを縮小したいと考えました。

BFG リポジトリ クリーナーを実行すると、1755 個のファイルが見つかり、処理されたと報告されました。

ここで指示されているように、最終的な git gc を実行しました: https://rtyley.github.io/bfg-repo-cleaner/

すべて問題ありません - .git フォルダーは元のサイズの 17% に縮小されました。それを元に戻すと、BitBucket によって報告されたレポのサイズが実際に大きくなりました!

その時点まではすべてが正しく動作しているように見えたため、何が問題だったのかわかりません。

サイズを小さくするためにレポを再作成する必要が本当にないので、どんなアドバイスもありがたく受け取りました。

ありがとう

0 投票する
1 に答える
930 参照

git-rewrite-history - bfg repo-cleaner を使用した後、または既存のものをプルした後にレポを複製する必要がありますか?

bfg repo-cleaner の手順を読むと、ワークフローは次のようになります。

  1. --mirror オプションを使用してリポジトリを複製します
  2. bfg を使用して、不要なアイテムからリポジトリを削除します
  3. git gc を使用してアイテムを物理的に削除します
  4. きれいなレポをプッシュする

ただし、作業ディレクトリの独自のコピーを削除して新しいクローンを作成する必要があるかどうか、またはプルを実行してクリーンなリポジトリ/履歴を取得できるかどうかは不明です。現在、レポを使用しているのは私だけです。

0 投票する
1 に答える
930 参照

git-rewrite-history - ファイルの永久削除を元に戻すことは可能ですか?

Diff.java私の同僚が、GitHub リポジトリの履歴からファイル ( ) を完全に削除しようとしました。

彼がこれをやりたいと思ったのには十分な理由がありましたが、かなりの数のファイルが失われ、接尾辞が.REMOVED.git-id. たとえばivy-2.2.0.jar-> ivy-2.2.0.jar.REMOVED.git-id.

たまたまローカルにコピーを持っていたので、メインの開発ブランチを修復することができました。ただし、開発ラインの歴史的な分岐やリリースのタグが多数あり、現在は上記のように壊れているようです。

彼が次のようなプロセスを実行したことを理解しています。

このプロセスは破壊的であり、これが発生する前にクリーンなミラーがどこかにない限り、回復する方法はないと推測しています。誰かが確認したり、アドバイスを提供したりできますか?

0 投票する
2 に答える
839 参照

git - *Foo* の *all* インスタンス (コンテンツ、ファイル名、コミット メッセージ) をリポジトリ内の *Bar* に単一の簡単なステップで一括置換する方法は?

私が従業員である有名なドイツのソフトウェア会社「Apfel」によって作成された、「Hammerstein」と呼ばれる、まだ公開されていないソフトウェア製品の巨大なレポがあるとします。

ある日、「アプフェル」はハマースタイン部門をスピンアウトし、それをさらに有名な会社「オラキュロ」に売却します。オラクロは「ハマースタイン」を国家の誇りとして「レイネタ」に改名し、オープンソースにすることを決定します。

契約では、リポジトリ内の「Hammerstein」と「Apfel」へのすべての参照を「Oráculo」と「Reineta」に置き換えることが義務付けられています。

すべてのファイル名、すべてのコミット メッセージ、すべてを置き換える必要があります。

たとえば、次のようになります。

  1. src/core/ApfelCore/main.cppなる必要がありsrc/core/OraculoCore/main.cppます。

  2. "Add support for Apfel Groupware Server"なる必要があるというコミットメッセージ"Add support for Oraculo Groupware Server"

  3. 文字列ApfelServerInstance* local_apfel#define REINETAおよびは、、、などUrl("http://apfel.de")になる必要があります。OraculoServerInstance* local_oraculo#define HAMMERSTEIN

これは、もう存在しないファイルにも当てはまりますHEAD

最小限の手動介入でそれを達成するための最も簡単で最も痛みのない方法は何ですか(潜在的に多数のリポジトリ/アセットにバッチで適用できるようにするため)?

  1. BFG--delete-fileは文字列を置き換えることができますが、 ではなくオプションしかないようです--rename-file。さらに、引数としてパターンを取りません。
  2. このアプローチHEADは、歴史全体に対してのみ有効であり、有効ではないようです。私はそれを使って運がなかった--tree-filter
0 投票する
1 に答える
505 参照

git - bfg で git リポジトリをスリム化する

コーダーによるバイナリ ファイルのアナーキーな追加に直面し、問題のあるファイルを削除するだけでなく、ツリー内の履歴も削除して git リポジトリをスリム化する方法。

bfgを使用してみましたが、ミラー化されたベア リポジトリで動作するため、ワークフロー全体を取得するのが難しく、Web 上のさまざまな場所から回答を収集する必要がありました。