3

リモートリポジトリのローカルコピーを作成しました。いくつかの古い不正なコミットデータが問題を引き起こしているため、ローカルリポジトリの履歴を書き換え(フィルターブランチ)する必要がありました。これで、コミットハッシュがすべて異なることを除いて、リモートリポジトリのクローンが作成されました。

ローカルリポジトリをリモートで動作させて、将来のコミットをプルする方法はありますか?それは決してプッシュされないので、それは問題ではありません。git pullを実行すると、元の履歴全体をプルしようとしますが、これは不要であり、ローカルリポジトリを再破損するだけです。

4

1 に答える 1

2

あなたが気にするのが引っ張ることだけなら、そうです。できることは、リモートリポジトリをフェッチすることです。次に、最新のローカルコミットと一致するリモートリポジトリからのコミットを特定します。-s ours次に、そのリモートコミットをフラグを使用してローカルコミットにマージします(ours戦略を設定するため)。これにより、ローカル履歴のツリーのみを使用しながら、両方の履歴を結び付けるマージコミットが生成されます(したがって、マージの競合は発生しません)。

このマージが適切に行わgit pullれると、リモートリポジトリから安全にマージできるようになり、作成したダミーマージよりも新しいコミットでのみマージが試行されます。

リモートリポジトリの履歴全体を保持する必要があり、ダミーマージの2番目の親としてアクセスできることに注意してください。ただし、ローカルツリーには影響しません。

于 2012-10-12T20:01:06.740 に答える