SVNで運用されていたプロジェクトをgitに移行する機会があったのでその時のメモなどを。
思ってたよりは楽だったかな・・・
準備
gitとsvnが入っていることは当然なんですが、git-svnというライブラリをインストールする必要があります。
といってもyumで終了です。
1 |
yum -y install git-svn |
参考リンク
subversionリポジトリでもgitが使えるgit-svn
yumを使わない方法も一応あるようです。
参考リンク
git-svnインストールからgit svn dcommit完了までの手順
実際の移行(git svn clone)
移行したいディレクトリ直下で下記コマンドを実行すれば一気に取り込めます。
1 |
git svn clone -s --prefix=svn/ svnのリポジトリURL |
ブランチが複雑だったりするとダメらしいのですが、自分の場合はそれほど問題なくいけました。
終わった後git branch -a でみてあげればremotes/svn/~などとsvnの追跡ブランチが取り込まれているのがわかると思います。
gitのブランチの作成
これだけではgitで運用できるブランチがつくれていません。追跡ブランチからブランチを作る必要があります。
下記コマンドでブランチを作り、チェックアウトします。(/remotes/svn/hogehogeからhogehogeブランチを作るとします。)
1 |
git checkout -b hogehoge remotes/svn/hogehoge |
ちなみに不要な追跡ブランチを消すのは下記コマンドです。
1 |
git branch -r -d svn/hogehoge(←remotes以下の部分を記述する。) |
これでブランチが作成できたのでgitの運用ができます。
参考リンク
追跡ブランチ (tracking branch) というブランチが何なのか調べた
この状態だとまだユーザー情報を作っていないのでユーザー情報を作成してあげましょう。
1 2 |
git config --global user.email "メールアドレス" git config --global user.name "ユーザー名" |
この後、git add , git commit ,git pushなども正常に行えます。
移行全般に関するリンクは下記が参考になります。
参考リンク
[…] 追跡ブランチからローカルブランチを作る方法~ (svn→gitの移行など) […]