(小さなテスト リポジトリで)各コミット.patch
のコマンドで生成された一連のファイルにリポジトリをエクスポートしgit format-patch
てから、空のディレクトリで "git init" を使用し、続いてgit apply
各パッチ ファイルのコマンドを使用してリポジトリを再構成しようとしました。うまくいきました --- 1 つだけ問題git am
がありました -- パッチの ID タグを保存する代わりにリポジトリにパッチを適用すると、新しい ID タグが生成されます。これは、どのコミットが冗長で、どのコミットがそうでないかを判断するのが難しくなるため、後で問題になる可能性があります。
リポジトリのクローンを作成する通常の方法を使用しない理由についてgit clone
は、一般的に言えば、リポジトリのクローンを作成するために使用git clone
しますが、現時点では、それが可能かどうかを確認するための非常に具体的な理由があります。このように、ここで詳細を説明するには長すぎます (理由については、この質問の後半で言及するかもしれません) --- そして、これらの理由が長すぎるだけでなく、それらの最終的な詳細が、この質問の正解は。
.patch
ただし、この目的に使用するのに適切なファイル形式ではないと言われたら、私はそれを受け入れます。私がやりたい最も重要なことは次のとおりです。
リポジトリへの個々のコミットを個々のファイルに抽出し、リポジトリ履歴などでそれらのファイルの順序を知ることができます。
コミットの抽出されたバージョンに基づいてリポジトリを完全に再構成できる
後で、作成すべきではなかったと私が特定したコミットを「非正規化」できるようにする (そして、リポジトリの履歴に保持することは、プロジェクトの履歴サイズに原因となる肥大化に値しない) ので、次のことができます。 「正規化されていない」コミットなしでリポジトリを再構成します。(ちなみに、側面 3 は、私がこれを実行できるようにしたい理由に大きく関係しています。)