git svn init
がおわり、これからいよいよ作業を始ましょう!というときから使用した git svn コマンドや作業の流れをノートいたします♪
用語
- svn ブランチ: $SVN_REPO/branches 以下にあるディレクトリ
git ブランチ: git のローカルブランチ
まとめ内容
- Windows 7、Git Bash での作業
- svn ブランチでの作業方法
- svn のコミット先の確認方法(trunk なのか branches なのか)
- 他メンバー作業分を自分の作業中のローカルリポジトリに反映する方法
# 変更をダウンロード git svn fetch # Subversion の最新コミットを master ブランチへ取込む git checkout master git svn rebase # svnブランチ上で開発したい # 作業場所作成 # git、svn のブランチを確認 git branch -a # svn ブランチに対応するブランチを作成して git チェックアウト git checkout -b git-branch remotes/origin/svn-branch # git svn dcommit 時のコミット先を確認 git svn info # 作業を行う # 作業用 git ブランチを作成しチェックアウト git checkout -b branch-dev git-branch # 編集等の作業を行い、git、svn へコミットを行なっていく # 作業途中に他メンバー作業分を反映するには次のようにする。 # 他メンバー作業分を取込 git svn fetch # 他メンバー作業分を svn ブランチへ反映 git checkout git-branch git svn rebase # 他メンバー作業分を作業ブランチへ反映 git checkout branch-dev git rebase git-branch # まず、作業用ブランチで git コミットを行う。 git add -A git commit ... 略 ... git commit # svn ブランチへ反映 git checkout git-branch # 次のコマンドはコミットの歴史が一直線、リニア、になるように --squash オプションを付けている。 # --no-ff でも問題なくマージできるが、混乱の元となるため非推奨とのこと。 git merge --squash branchname-dev git commit # 次に、svn へコミットを行うが、その前に他メンバー作業を反映する。 # 他メンバー作業分を取込 git svn fetch # 他メンバー作業分を svn ブランチへ反映 git checkout git-branch git svn rebase # 他メンバー作業分を作業ブランチへ反映 git checkout branchname-dev git rebase git-branch # svn へコミットする。 # このタイミングでコミットコメントは入力できない点に注意 git checkout git-branch git svn dcommit
おわりに
次のページがとても参考になりました。特に svn ブランチでの作業の仕方が助けになりました。ありがとう存じます!
また、git-svn のおかげで rebase に少しずつ馴染んできましたわ♪
以上です。