SmartGit (クライアント側) とSubGit (サーバー側。ここでは、Subversion にリンクされた、新しく複製された純粋な Git リポジトリが必要です) の2 つのツールを使用してそれを行う方法を説明できます。git-svn はディレクトリの移動をサポートしていません。
ほとんどのファイルが同じディレクトリに移動された場合、どちらもディレクトリ移動検出をサポートします。もともと、ファイルを移動して、任意のツールでプッシュできました。
ステップ 1 (オプション 1)。置換によって現在のコミットを元に戻す必要があります (ローカルに変更がないことを確認してください)。
$ git update-ref my_current_branch <commit_id_before_move>
$ git reset --hard HEAD
ステップ 1 (オプション 2)。...またはその特定のコミットのリバースマージ+コミットによって (その後、ブランチの置換は実行されません)
$ git revert <commit_with_wrong_move>
ステップ 2 (オプション 1)。ここで、変更を再適用する必要があります: ディレクトリの移動
$ git mv SRC_FOLDER DST_FOLDER
ステップ 2 (オプション 2)。...または、変更をもう一度チェリーピックします。
$ git cherry-pick <commit_with_wrong_move>
ステップ 3. 次に、変更をプッシュします。
SubGit の場合: ブランチの置換の場合 (つまり、ステップ 1 のオプション 1 の場合):
$ git push -f
単純な元に戻す場合 (つまり、ステップ 1 オプション 2 の場合):
$ git push
SmartGit の場合は、「プッシュ」ボタンを押します (強制プッシュが必要な場合は、尋ねられます)
元に戻す+やり直すだけで解決できるというのは奇妙に思えるかもしれませんが、主なアクション (ディレクトリの移動) はプッシュ レベル (SVN への変換が開始されたとき) で実行されるため、適切なツールを使用して実行する必要があります。