git-svnを使ってSVNからGitに移行しましょう

目次

今日はSVNからGitに移行するやり方を紹介します。

SVNからGitに移行する際によく使うものはgit-svnです!

git-svnとは

Git と Subversion の橋渡しをするコマンド群のベースとなるコマンドです。

やりたいこと
  • SVNブランチをGitリポジトリとして移行すること
  • ignoreも移行する
  • 過去のSVNログも全部引き継ぐ
  • SVN側で進んだ分を再取込する
SVNブランチをGit化に変換

やる方は2通りがありまして、git svn cloneとgit svn fetchです。

git svn clone
git svn clone --trunk=対象ブランチのパス --prefix=svn/ https://sample.com/svn ./Bitbucketリポジトリ名

–prefixは必ず付けましょう!

git svn fetch
git svn init --trunk=対象トランク --prefix=svn/ https://sample.com/svn ./Bitbucketリポジトリ名
git svn fetch

git svn cloneの場合失敗したら、最初からやり直しになるので、git svn fetchであれば
途中で失敗した部分から再開することができる

# エラーのリビジョンから再開
git svn fetch -r 3594:HEAD
ignoreの移行
git svn show-ignore > .gitignore
git add .gitignore
git commit -m 'add gitignore'
リモートブランチにpushする
git branch svn-backup
git branch
git push origin svn-backup
SVNから差分を取り込む
git svn rebase
git push origin svn-backup

– PR –