カテゴリー
Microsoft

【Git】普段使い git-svn の流れ

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 に少しずつ馴染んできましたわ♪

以上です。

コメントを残す