git-svnでsvnから緩やかにgitに移行しよう(基本手順編)

  • 41
    Like
  • 0
    Comment
More than 1 year has passed since last update.

まずはインストール

環境はOS:CentOS5.5。svnはすでにインストールされているものとします。

$vim /etc/yum.repos.d/rpmforge.repo
[rpmforge]
name = Red Hat Enterprise $releasever - RPMforge.net - dag
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
enabled = 0
gpgcheck = 0

$yum install git git-svn --enablerepo=rpmforge
$git svn --version //確認

既存svnリポジトリをgit化する

$mkdir 作業ディレクトリ
$cd 作業ディレクトリ
$git init
$git svn clone -s --prefix svn/ [svnリポジトリ(trunkはつけない)] [clone後ディレクトリ名]
$cd cloneしたディレクトリ
$git svn show-ignore >> .git/info/exclude

*(余談)もしすでにaddしてるものがある場合や.gitignoreが効かないそんなときは..

$git add --cached file名

さらにcommitまでしてた場合

$git add --cached file名
$git commit -m "取り消し" file名

これでOK。

開発のフロー

$git checkout -b topic-branch名
$git add .
$git commit -m "コメント"

して開発する。

もしsvnのリモートリポジトリtrunkから更新内容を取り込みたいなら

 $git svn rebase

もしくは

$git svn fetch
$git checkout trunk //確認
$git checkout master
$git merge trunk

リモートリポジトリに変更を反映したい場合

$git checkout master
$git merge topic-branch名
$git svn dcommit

もしtopicブランチを削除したいなら

$git branch -d topic-branch名