SVN から Git に移行する

SVN から Git への以降は5 つのシンプルなステップに分けられます:

1. 移行に向けて環境を整備します。

2. SVN リポジトリをローカル Git リポジトリに変換します。

3. SVN リポジトリに変更があった場合、ローカル Git リポジトリを同期します。

4. Bitbucket を経由して、開発者と Git リポジトリを共有します。

5. 開発作業を SVN から Git に移行します。

Git リポジトリを作成する

環境整備、変換、同期の 3 つのステップでは、SVN のコミット履歴を取得して Git リポジトリに変換します。このステップの管理を行う最善の方法は、チームメンバーの一人を移行推進担当者 (このガイドを読んだ方が最適です) に任命することです。3 つのステップの作業はすべて移行推進担当者のローカルマシーン上で行います。

Git 移行: 整備、クローン、同期

同期のステップ以降は、特に問題なくローカルな Git リポジトリを対応する SVN リポジトリと常に同期させて最新の状態にすることができるはずです。他の開発者と Git リポジトリを共有する場合は、Git ホスティング サービスである Bitbucket にローカル Git リポジトリをプッシュします。

Git 移行: Bitbucket を経由した Git リポジトリの共有

Bitbucket にプッシュされると、他の開発者はその変換された Git リポジトリをそれぞれのローカルマシーンにクローンし、Git のコマンドを使用してその履歴を調べることも、またビルドプロセスに組み込むこともできます。ただし、チームを完全に Git ワークフローに切り替える準備ができるまでは、同期は SVN から Git への一方向のみとするべきです。即ち、開発者からそれぞれの Git リポジトリに対するアクセスはリードオンリーとし、コミットは引き続き元の SVN リポジトリに対して行うべきです。Git リポジトリが変更されるのは、移行推進担当者が同期を行なって更新内容を Bitbucket にプッシュしたときのみです。

この方法によって移行期間を明快に認識することが可能となり、その間は既存の SVN ベースのワークフローを中断することなく Git に慣れ親しむことができます。開発者の準備状況が切り替え可能なレベルになったと確信が持てた場合、SVN リポジトリの凍結および Git へのコミットの開始という最後のステップを実行します。

Git 移行: Active Development の Git への移行

Git ワークフローの全体が導入済みであり、また開発者は Git に慣れ親しむための十分な時間を与えられているため、この切り替えは極めて自然なプロセスとなるはずです。移行プロセスの 5 つのステップの詳細については、以下をお読みください

推奨

Bitbucket ブログ

DevOps ラーニング パス

Git の詳細

その他の Git ガイドとリソースについては、このハブをご確認ください。