2017-06-17 5 views
0

ほとんどの場合、gitリポジトリのファイルには、多くのコミットを含む履歴があります。 HEAD(AuthorDate/CommitDateが同じ)からトレースできるすべての履歴を持つファイルを抽出し、新しい空のブランチ(git checkout --orphanで作成可能)に書き出したいと思います。[Git]特定のファイルの履歴を抽出して、新しい空のブランチに書き出す方法は?

私は、git filter-branchがその可能性を秘めていることを知っています。

答えて

0

私はあなたが古いブランチから分岐してという新しいブランチの余分なファイルをgit filter-branchで削除できると思います。新しいブランチで不要なファイルを削除した後、2つのブランチがあります。古いブランチは変更されず、新しいブランチは必要なファイルになります。新しいブランチの履歴はgit filter-branchで保存されます(実際には、再作成されます)。

+0

'git filter-branch'で削除したいファイルを指定する方法は? – yumetodo

+0

'git filter-branch --index-filter 'git rm --cached --ignore-unmatch file1 file2 ...''を実行します。 https://stackoverflow.com/q/872565/7976758、https://stackoverflow.com/q/17993505/7976758、https://stackoverflow.com/search?q=git+filter-branch+remove+filesを参照してください。 – phd

+0

ありがとう!私はBFG Repo-Cleanerを使い、あなたのアプローチに従った。その後、私はgit rebaseを使用して、BFG Repo-Cleanerによる空のコミットを削除します。 – yumetodo

関連する問題