問題タブ [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 - 関連するファイルとコミットのみを含む既存のサブディレクトリから新しいリポジトリを作成します
私はそれ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-empty
。filter-branch
これは役立つかもしれませんが、マージされるまで実行可能なソリューションではありませんbfg
。
私もclone
このブランチを試しました。理想的には、 master を取得して、それらのみを使用してまったく新しいリポジトリを作成する方法があるでしょうrefs
。
アップデート:
@BlythMeister の投稿を拡張しました。この記事のfilter-branch
コマンドには、コンテンツを先頭に移動するという問題が 1 つあります。だから私はそれを実行する必要があります。subdirectory-filter
subdirectory
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つあります
- BFG Repo クリーナーを使用して次のコマンドを実行するにはどうすればよいですか?
git filter-branch --subdirectory-filter {移動するディレクトリ} -- --all
- BFG Repo クリーナーを実行した後に .git サイズを縮小する方法は?(現在 GB から MB になっています)