問題タブ [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.
git - 実行が成功した後に使用する BFG
私が読んだBFGレポクリーナーの使用に関するドキュメントに従いました"It's best to delete all old clones"
が、どれを削除するか、どのように削除するかはわかりません。すべてをbitbucketにプッシュしています。
現在、2つのリポジトリのディレクトリがあります
両方のディレクトリを削除して、ビットバケットからすべてをプルする必要がありますか? もう一度ミラーリングする必要がありますか? または単に削除/.git
して名前を変更する/.myproject.git/ => /.git?
または何...?
git - git lfs bfg: その後、競合をどのように解決しますか?
レポートの PDF スナップショットをコミットしたリポジトリがあります。git lfs を試して、生活の質が向上するかどうかを確認したい。
ここ ( https://github.com/rtyley/bfg-repo-cleaner/releases )の手順に従って、BFG を使用して古いバイナリを消去し、lfs に移行しました。リポジトリに Gitlab サーバーを使用することに関連するいくつかのしわがありましたが、最終的にはこれでうまくいったと思います。
私たちが何をしたかを示し、最後にマージ競合のクリーンアップについて質問するために書いています。
抄録をお見せします。「--mirror」クローン (裸のレポ) をチェックアウトし、BFG がその作業を行い、いじってからプッシュバックします。
これを試す場合は、レポにプッシュバックする際のトラブルに備える必要があります。1 つの問題は、8.12 より前の Gitlab では、git の SSH 転送と git lfs の HTTPS 転送の間でパスワード管理が統合されていなかったことです。もう 1 つの問題は、Gitlab プロジェクトの「保護」です。これは、Gitlab を使用している場合に見られる可能性があります。初めてプッシュしたときにこれを見ました:
この問題を回避するためにいくつかの変更を加えました。Gitlab の最新バージョン (8.12.4) が必要でした。古い証明書を無視するように Git に指示する必要がありました。Gitlab サーバーでは、開発者がプッシュできるようにプロジェクトを「保護しない」必要がありました。私は所有者であり、通常の git の変更をプッシュできるため、なぜそれが必要なのかわかりませんが、どうやら lfs の統合は異なるようです。大騒ぎした後、リポジトリへのプッシュバックに成功しました。
成功!
次に、このリポジトリの作業ディレクトリに戻り、PDF ファイルが保存されているディレクトリに戻り、git pull を試しました。対処しなければならないマージの競合がたくさんあります。
おそらく、リモートのクリーンなクローンを作成して、そこから先に進むと思います。私がインターネットで見つけた指示は、それについてはあまり役に立ちません。それらは主に、進行中の lfs や lfs のクローンを扱うことについてではなく、lfs を使い始めることに関するものです。誰かがこのことを複製し、lfs を持っていなかったらどうなるか、少し心配です。ああ、まあ、見てみましょう。
これが私の質問です。これらのバイナリ競合のすべてに対処したい場合、どうすればよいでしょうか? サーバーからのすべての変更を単に受け入れたい場合は、競合する「fn.pdf」ごとに1回、これを何度も実行する必要があるようです。
それを何度も行うのは面倒に思えますが、できると思います。
また、こちら (バイナリ ファイルとの Git の競合の解決) で試してみるため のアドバイスも見つけました。
しかし、私はそれとどのように相互作用するかを確実に伝えることはできません. diff は 3 列のバッファーを持つ gvim フレームを起動しますが、うまくナビゲートできませんでした。編集者の地獄に私を着陸させているように私には思えます。
git - BFG は機密コンテンツをどこからでも削除していますが、最後から 2 番目のコミットでは
秘密の API トークンといくつかのエンドポイントを含む履歴のファイルから数行を削除しようとしていました。これらのエンドポイントは、そこにハードコーディングするよりも環境変数として渡される方がはるかに優れているため、いつかレポを公開すると、それらは存在しなくなります。無邪気な目。
この目的のために、BFG リポジトリ クリーナーという素晴らしいツールを使用しました。これは、過去に git 履歴から残りの機密ファイル全体を削除するためにも使用していました。今回は、次の手順に従ってテキストを置き換えます。
しかし、出力では、これが現れました:
だから私はそれを正確に行い、全体を複製し、os.environ[]
Pythonでの2回の呼び出しで必要だった2行を置き換えてコミットし、それをプッシュしました。その後、BFG を再度実行したところ、git reflog
すべてがうまく機能しているように見えました。
私はgitlabのコミットブラウザをチェックインしましたが、テキストは***REMOVED***
どこにでもありましたが、最後から2番目のコミットで、これが起こりました:
ファイルが次のコミット(現在は「HEAD」で保護されているもの)で編集され、GITがこれらのトークンを必要として、これらの2行を取り除くために行った変更を再作成するために発生したと思います。しかし、どうすればこれを達成できますか?
git - git svn fetch は、bfg のクリーンアップ後に「無効なリビジョン範囲」「エラー: 128」を返します
git-svn を使用して SVN から移行中の Git リポジトリがあります。以前git svn fetch
は SVN から最新のコミットを取得していました。レポジトリを GitHub にプッシュしたかったのですが、削除しなければならない100 MB を超えるファイルが履歴にいくつかあったため、 bfg レポ クリーナーを使用してそれらを削除しました。
これらのファイルを履歴に再度入れたくない (GitHub の制限を超えている) ため、リポジトリ全体を再初期化せずに機能させるにはどうすればよいですか? ハッシュを再計算する方法、または不一致を無視する方法はありますか?
git - BFGの後のgitノート?
SVN から git に移行しましたが、各 git コミットに SVN リビジョン番号を参照するメモがありました。リポジトリのインポート後、BFG リポジトリ クリーナーを使用して、バイナリ ファイルやその他のゴミから git 履歴を消去しました。残念ながら、入力してもメモが表示されませんgit log
。BFG がメモのコミットに関する参照を更新するのを忘れていると思います。BFG は、次の形式で古いオブジェクト ID を新しいオブジェクト ID にマッピングした *.txt レポートを残します。
上記のマッピングを考慮して、メモをすばやく修正するためのスクリプトを提案できますか?
git notes
PS: 2 番目に入力すると、BFG レポで古いと見なされる参照が表示されるため、更新されていない参照が問題の原因であるとほぼ確信しています。object-id-map.old-new.txt