問題タブ [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 投票する
2 に答える
355 参照

git - 関連するファイルとコミットのみを含む既存のサブディレクトリから新しいリポジトリを作成します

私はそれmonorepoに多くの異なるものを持ってpackagesいます。パッケージを取得して、新しいレポを作成したいと思います。プロジェクト フォルダー内のファイルに関連するコミットを保持したいと考えています。

指定したフォルダーからファイルを使用してブランチを作成できる で使用git filter-branchしてみました。--subdirectory-filter

ただし、logコマンドと--allフラグを使用すると、マスター ブランチで確認されたコミットよりも多くのコミットがあることがわかります。

これらのコミットのそれぞれには、必要なsubdirectory.

これらのファイルを削除するにはどうすればよいですか? 入ったのはこちらbfg

-p( ) フラグを使用する--protect-blobs-fromと、すべての参照を に渡すことができmasterます。

これにより、ブランチにないすべてのファイルがリポジトリ履歴全体から削除されます。master

でも!git log --allコミットにファイルがなく、余分なコミットがすべて表示される場合。

コマンドにディレクトリを提供する方法を探しています (例: )。そのディレクトリ内のファイルに関連するファイルコミット./src/projectのみを持つレポがあります。

ファイルを変更せずにこれらのコミットを削除するにはどうすればよいですか?

コマンドには PR for がありbfgます--prune-emptyfilter-branchこれは役立つかもしれませんが、マージされるまで実行可能なソリューションではありませんbfg

私もcloneこのブランチを試しました。理想的には、 master を取得して、それらのみを使用してまったく新しいリポジトリを作成する方法があるでしょうrefs

アップデート:

@BlythMeister の投稿を拡張しました。この記事filter-branchコマンドには、コンテンツを先頭に移動するという問題が 1 つあります。だから私はそれを実行する必要があります。subdirectory-filtersubdirectory

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

git - BFG Repo クリーナー - ディレクトリの git 履歴をリポジトリ A からリポジトリ B に移動する

私は2つのリポジトリを持っています。リポジトリ A とリポジトリ B です。リポジトリ A から 1 つのディレクトリを移動しています。dir-to-move をリポジトリ B に移動します。しかし、git-filter-branch が膨大な時間を費やしているそのディレクトリ (つまり dir-to-move ) のみの git 履歴を保持したいと考えています。そこで、より高速な BFG Repo クリーナーを使用したいと思います。しかし、.git フォルダーのサイズも縮小したいと考えています。したがって、質問は2つあります

  1. BFG Repo クリーナーを使用して次のコマンドを実行するにはどうすればよいですか?

git filter-branch --subdirectory-filter {移動するディレクトリ} -- --all

  1. BFG Repo クリーナーを実行した後に .git サイズを縮小する方法は?(現在 GB から MB になっています)