4

バックグラウンド

Subversion を使用するプロジェクトにいくつかの機能を追加しています。git-svn を使用してローカル リポジトリにクローンし、git-svn rebase を使用して公式トランクの最近の変更を維持し、履歴を線形に保ちます。

最近、私は自分自身を忘れて、いくつかのマージを行い、リベースを台無しにしました。つまり、歴史を再び線形にするために、cherry-pick で時間を費やす必要がありました。その後、1 回のリベースはうまくいきましたが、現在 git-svn リベースを作成しようとすると、2008 年からの Subversion コミット (約 700 回前のコミット) の間で競合が発生しますが、履歴は直線的であるように見えます。

質問

  1. 私のgitリポジトリをsvnトランクで再構築/再同期する方法はありますか?
  2. 別のコンピューター (.git/svn フォルダーなし) で自分の git リポジトリのクローンを作成した場合、リポジトリの URL と最後にリベースされたリビジョンを知っていれば、svn でリベースできますか?
4

1 に答える 1

2

ブランチを確実に同期されたコミット (古いもの) にリセットしてから、リベースを実行して同期することができます。

ローカルで行われた変更を保存するには、前に分岐することをお勧めします (そして、この新しい分岐 afterwatds から必要な変更をチェリーピックします)。

git branch branch_with_my_changes
git reset --hard very_old_commit_that_is_synced
git svn rebase
于 2010-03-29T12:52:36.413 に答える