SubversionからGitへ移行(クライアント側)のイメージ図を書いてみた


いまさらだけどSVNを今まで操作して、ある日Gitを使えと言われた時の頭の中でのSVNからGit使いになるための変換イメージを記載。ホワイトボードのメモ書き。

今までの単純なSVNの操作イメージ

クライアントツール:Tortoise SVN (GUI)で操作したイメージ

1. SVNのリポジトリを自分のローカルにチェックアウトする

2. 自分のローカルで作業

3. 自分のローカルをSVNにコミットする

4. リポジトリから最新情報を更新

SVNからのGitの操作イメージ

クライアントツール: Git for Windows (CUI)で操作したイメージ

1. Gitのリポジトリを自分のローカルにチェックアウトクーロンする

コマンド
git clone https://xxxxxxxxxxxxxx.yyy.zzz

2. 自分のローカルで作業

3. ローカルリポジトリに変更内容を追加

コマンド
git add .

4. ローカルリポジトリにコミット

コマンド
git commit -m "commit message"

5. ローカルリポジトリからリモートリポジトリにコミットプッシュ

コマンド
git push -u origin master

6. リポジトリから最新情報を更新プル

コマンド
git pull

※これだけだとSVNよりGitはローカルリポジトリが増えたイメージで、ただ単純に手数が増えた印象しか受けない。Gitだからこそというイメージを以下に記載する。

もっと高度なGitの使い方 branchとpull request

使用するGitリポジトリ:GitHubやBacklog等のWebサービス

1. Gitのリポジトリ(master)から自分のローカルにクーロンする

コマンド
git clone -b master https://xxxxxxxxxxxxxx.yyy.zzz

2. ブランチ(feature)作成

コマンド
git branch feature

3. ブランチ(feature)移動

コマンド
git checkout feature

4. 自分のローカルで作業

5. ローカルリポジトリに追加&コミット

コマンド
git commit -m "commit branch"

6. ローカルリポジトリからリモートリポジトリにプッシュ

コマンド
git push -u origin feature

7. Webサービスからプルリクエスト(※)を選択してブランチをmasterにマージする

Githubのプルリクエスト

※プルリクエストはGit本来の機能ではなくGithubやBacklogなどのWebサービスが持っている機能
ブランチの更新内容に本当に問題ないかソースレビューを有識者に出すイメージ。また問題なければ、ブランチからmasterへソースのマージが簡単にできる。