現在、自分が関わってるスマートフォンアプリ開発プロジェクトでは、ソースコードをBitBucket(https://bitbucket.org/)というソースコード管理サービスで管理しています。 このBitBucket、実はGitプロトコルに対応していて、GitHubとかと同じ方法でリポジトリのクローンやプッシュが行えます。せっかくなので流行りのVMSも触っときましょうってことで、このBitBucketからリポジトリをクローンしてEclipseにソースをインポートし、ローカルリポジトリと接続してみます。 すでにAndroid開発環境が出来上がっていることを前提とします。 同じUbuntu環境で開発されているかたはこちらの記事も参考にどうぞ!
Eclipse用Gitプラグイン「EGit」インストール
下記ページを参照してインストールと設定を行う。後ろの動作確認はいらないです。 ↓Eclipse Git プラグイン ~ インストールからコミット、履歴の比較まで - グロブ http://typea.info/blg/glob/2010/12/eclipse-git.html
git-coreインストール
コマンドラインからcloneやpushを行うためにはgit-coreのインストールが必要です。 バージョンは古いですがgit-coreはUbuntuの公式リポジトリにも登録されているのでそれを使うことにします。
# sudo aptitude install git-core ・・・・・・ # git --version git version 1.7.5.4 |
SSH公開鍵と秘密鍵の作成 自分のBitBucketリポジトリはは接続方法をSSHで縛ってるので、認証のための公開鍵と秘密鍵を作成します。
# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/mamohacy/.ssh/id_rsa): ←生成するパスを指定。何も指定しない場合デフォルトになる Enter passphrase (empty for no passphrase): ←パスフレーズを入力 Enter same passphrase again: ←パスフレーズを入力 Your identification has been saved in /home/mamohacy/.ssh/id_rsa. Your public key has been saved in /home/mamohacy/.ssh/id_rsa.pub. The key fingerprint is: 〜〜〜〜(省略)〜〜〜〜〜 # cd ~/.ssh # mv id_rsa.pub authorized_keys |
BitBucket側に公開鍵を設定
①BitBucketにログイン→ユーザー名→Account→SSH keys Label:Git-ssh(※何でも構わない) SSH Key:authorized_keysの中身全部をコピペ
②「Add key」で追加 ③SSH keysの下にgit-sshが追加されていること
# cd ~/.ssh # touch config # vim config ※下記の内容を追加 Host bitbucket.org User XXXXX ← ログインアカウントを設定 Port 22 Hostname bitbucket.org IdentityFile /home/mamohacy/.ssh/id_rsa TCPKeepAlive yes IdentitiesOnly yes |
BitBucketにあるリモートリポジトリをローカルにクローンする
いよいよ、リポジトリのクローンです。 まずローカルリポジトリを作成するディレクトリに移動します。
# cd ~/gitrepo |
bitbucketのリポジトリのトップページに表示されているコマンド記述をそのままコピペして実行します。
# git clone git@bitbucket.org:xxxxxx@yyyyyyy.git Cloning into yyyyyyy... Enter passphrase for key '/home/mamohacy/.ssh/id_rsa': ←キーを作成したときに入力したパスフレーズを入力 remote: Counting objects: 89, done. remote: Compressing objects: 100% (58/58), done. remote: Total 89 (delta 9), reused 0 (delta 0) Receiving objects: 100% (89/89), 317.67 KiB | 162 KiB/s, done. Resolving deltas: 100% (9/9), done. |
lsなどでリポジトリがクローンされていることを確認しておきます。
ローカルリポジトリからソースをインポート
Eclipseを起動した状態で、
①パッケージエクスプローラ上で右クリック→インポート...→Git→Gitからプロジェクトを選択→次へ
②「ローカル」→次へ
③「追加」ボタンを押して表示される「Gitリポジトリーの追加」画面上で「参照」ボタンを押し、 上でローカルに落としたGitリポジトリの場所を指定。.gitフォルダがある上位を指定すれば だいたい間違わない。
④「検索」ボタンを押すと、検索結果に収容されているプロジェクトが表示されるはずなので 落としこみたいプロジェクトを選んで「完了」を押す。
ローカルリポジトリと同期
インポートしただけではファイルをリポジトリから落としただけ、という状態にしかなっていないので リポジトリと接続します。
①パッケージエクスプローラからローカルリポジトリからインポートしたプロジェクトを選んで 右クリック→チーム→プロジェクトの共用を選択
②「プロジェクトの共用」ウィンドウで「Git」を選び、「次へ」
③「Gitリポジトリーの構成」ウィンドウのリポジトリー欄の右はじにある矢印みたいなやつをクリック すると、先程インポートしたGitローカルリポジトリが表示されるので選択。
④プロジェクト名ところにターゲットとなるプロジェクトが表示されるので、チェックボックスにチェックを入れて「完了」を押す。
この時点だとファイルがうまく認識されない可能性もあるので念の為Eclipseを再起動します。 再起動後、パッケージ・エクスプローラーから任意のソースファイルを選んで、右クリック→チームと マウスを持っていったときに、「コミット」「拡張」「無視」「アントラック」といったGit操作の メニューが表示されればリポジトリとの接続は成功しています。
ローカルへのコミット、リモートへのPUSH
コミットとかは他のVMSと変わらない。保存したあとテストし、問題がなければチーム→コミットを 選び、コミットコメントをつけてOKを押すだけ。 あとはリモートリポジトリへのPUSH方法。 まず、リモートリポジトリの情報を設定します。 上でconfigファイルを作成しているせいか、プロジェクトを選択して右クリック→チーム→リモート→ プッシュとやると、すでに「構成済みリモート・リポジトリー」に値が設定されていました。 おそらく、ここで「カスタムURI」を選択して、上で設定した内容をそのまま入力していけば configファイルを構成してくれるんだと思われます。
①いずれの場合でも、設定を完了して「次へ」
②最初のアクセスではパスフレーズの入力を求められるので入力。
③ソースと宛先をどこにするかを選んで「次へ」
今回は勉強の意味も兼ねてgit-coreを入れ、コマンドラインからcloneしてみました。 この方法を使わなくても直接Eclipseだけでリポジトリのクローンを作ることもできます。 次回はその方法をアップします。