git-svnでマージ

gitはsvn経由でしか使ったことがなく、ローカルにコミットを溜めて
git svn dcommitでまとめてリモートにコミットするくらいでした。
trunkもブランチも別々にgit svn cloneしてましたが、
今回マージするに当たってgit上でマージしてみようと思いました。
うまくいったのでメモ。

参考にした記事

1. trunkをgit svn cloneしたディレクトリに移動します。

2. .git/configにブランチの情報を追加します。

[svn-remote "branch1"]
  url = http://host/project/branches/branch1
  fetch = :refs/remotes/git-svn-branch1

3. branch1をfetchします。

$ git svn fetch branch1

4. branch1のローカルブランチを作成します。

$ git checkout -b branch1 git-svn-branch1

5. masterブランチに切り替えます。

$ git checkout master

6. branch1をmasterにマージします。

$ git merge branch1 --no-ff

"--no-ff"を付けないとgit svn dcommitできなくて悩みました。

7. リモートリポジトリにコミットします。

$ git svn dcommit

簡単にマージできました。
gitの使い方が少しわかりました。