はじめに
オフィスのLAN内にある物理サーバでGitサーバを立てていたのですが、このたび物理サーバを撤去する事にしました。
Gitサーバ以外にも様々なツールがあるのですが、今回はプライベート環境のGitリポジトリをGitLab.comに移行した内容をまとめます。
方針
* サーバ管理はしない(SaaSを利用)
* 無料である事
* プライベートリポジトリが作成できる事(できれば無制限)
* プルリク / イシュー / Wiki など基本的な機能がが使える事
Gitホスティング候補
* GitHub
* AWS CodeCommit
* Bitbucket
* GitLab.com
GitHub
最近GitHubのプライベートリポジトリが無制限になりましたが、これはパーソナルプランで $7 掛かる為、今回は候補から除外しました。
札束叩ける状態であれば、文句なしに使いたいんですがね。。。
AWS CodeCommit
フルマネージドといえばAWS。無料枠内の条件にマッチすれば、CodeDeploy / CodePipline との連携がし易いと思ったのですが、CodeCommitは現時点で他のGitホスティングと比較すると機能不足なので、今回は候補から除外しました。
Bitbucket
Gitクライアントで有名なSourceTreeを提供しているAtlassian社製のBitbucketは5人までの小規模チームまでなら無料でプライベートリポジトリが無制限で利用できるので、好感度は高いです。
また、他Atlassianツールとの連携もし易いと思うので、Atlassianで統一したい方はオススメです。
GitLab.com
昔、アイコンが変わる世代から一時期インストール版で使っていたのですが、久々に見たら、だいぶUIとか機能的にもアップグレードしてました。
SaaS版でもプライベートリポジトリが無制限かつ無料で使える事と、以前も使っていた事もあり(当時と別物ですが。。。)、今回は GitLab.com を採用する事にしました。
GitLab.com アカウントの発行
1. GitLab.comにアクセス
2. 「Sign Up」ボタンをクリック
3. 「New user? Create an account」部分に必要な情報を入力
4. 入力したメールアドレス宛てに、確認メールが届くので、「Confirm your account」をクリックすると登録が完了します。
GitLab.com 基本設定
ひとまず基本設定は以下。
*Profile(メールアドレス / アバター等)
*Account(2段階認証 / ソーシャルサインイン)
*SSH Keys(ssh-keygenでRSA 2048bit以上の鍵を作成後、公開鍵をインポート)
*Preferences(テーマカラー / シンタックスハイライトはお好みで)
※WebHookなどの設定は割愛(別の機会にでも)
Group作成
ここもお好みかと思いますが、基本的にプロジェクト単位でグループを作成していたので、必要分作成します。
作成したグループ内に他のメンバーがいる場合は、メンバーを追加しておきます。
リポジトリ作成
ようやく、リポジトリ作成です。
- 左側にある Group をクリック
- リポジトリを作成したいグループを選択
- 右側にある緑のボタン「New project」をクリック
- プロジェクト名を入力し、「Visibility Level」などを選択(ここではPrivateを選択しました)
- 「Create project」ボタンをクリックし、リポジトリ作成
Gitリポジトリの移行
GitLab.com 上でリポジトリを作成したら、既存のGitリポジトリ達を移行します。
ローカル上に clone してあるリポジトリのリモートリポジトリ先を確認し、pullしておきます。
移行対象リポジトリの参照先リモートリポジトリを確認。
$ cd ${git-project} $ git remote -v origin https://example.com/git/hoge/project-1.git (fetch) origin https://example.com/git/hoge/project-1.git (push) $ git pull Already up-to-date.
これまでのリモートリポジトリ参照先を削除します。
$ git remote rm origin $ git remote -v (何も表示されません)
GitLab 上に作成したリポジトリの URL をリモートリポジトリとして追加します。
$ git remote add origin git@gitlab.com:example/project-1.git $ git remote -v origin git@gitlab.com:example/project-1.git (fetch) origin git@gitlab.com:example/project-1.git (push)
問題なければGitLabのリモートリポジトリへ push します。
※ポケットWiFiや、テザリング環境でプッシュするとあっという間にパケットが膨れてるので注意
$ git push origin master Counting objects: 25, done. Delta compression using up to 4 threads. Compressing objects: 100% (22/22), done. Writing objects: 100% (25/25), 362.62 KiB | 0 bytes/s, done. Total 25 (delta 7), reused 0 (delta 0) To git@gitlab.com:example/project-1.git * [new branch] master -> master
リモートプッシュ後、管理画面上でプッシュ出来たことが確認ができます。
git log / tig 等でこれまでの履歴も確認ができました。
これで、Gitリポジトリの移行は完了です。
まとめ
今回は、オンプレ環境にあるGitリポジトリをGitLab.com上に移行しました。
他サービスとの連携設定をすることで、自動化することもできます。
リポジトリの移行に関しては、リモートリポジトリ先を変更してプッシュするだけなので、比較的カンタンに移行できます。
[amazonjs asin=”477416366X” locale=”JP” title=”GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)”]
[amazonjs asin=”4844365010″ locale=”JP” title=”Gitが、おもしろいほどわかる基本の使い方33〈バージョン管理、SourceTree、Bitbucket〉”]