somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【bitbucket】privateリポジトリのために登録してみた【git】

githubでprivateリポジトリが欲しいけど、有料だしと思うことがあります。そのときの無料でかつgitで扱えるサービスを見つけたのでそのメモです。

bitbucket

タイトルにもあるbitbucketはgithubと同様にリポジトリサービスです。こちらはprivateリポジトリが無料ですが、使用するバージョン管理システムMercurialということをよく耳にしていたので放置していました。

Mercurialだけじゃない?

しかし、bitbucketのTOPページに以下のように書かれていました。

Plant your code in the cloud. Watch it grow.

Unlimited private repositories to collaborate on your code – Git or Mercurial. Free for 5 users.

どっちも使えるとのことです。ただし、gitで扱う場合にもMercurialが必要です。詳細は後ほど。

登録

OpenIDでの登録が可能でしたが、Twitterがなかったので普通に登録しました。変わった項目はAccount typeくらいです。個人とチームで使うかを選べます。先述した5 usersからも分かるように、複数人で使う場合の設定になります。

登録完了後、メールが送られます。そのメールに記載されたURLにアクセスしてリポジトリ作成に移ります。

リポジトリ作成

Create your first repository ボタンを押下して作成画面へ遷移します。

privateリポジトリを作成するので、Access levelのチェックボックスにチェックを入れ忘れないようにします。ついでにProject managementのIssue trackingとWikiにもチェックを入れました。言語はPHPを選択しました。 Create Repositoryボタンを押下して作成完了です。

Mercurialのインストール

Mercurialのサイトからインストーラをダウンロードします。使っているPCがXPなので、「Mercurial 2.3.2 Inno Setup installer - x86 Windows - does not require admin rights」をダウンロードしました。

Mercurialの実行にはPythonが必要なので、別途インストールしておいてください。

TortoiseHgをインストールすることで、こちらもインストールされます。

TortoiseHg

TortoiseHgはWindows用のMercurialクライアントです。用途は、TortoiseSVN/Gitと同じです。TortoiseHgのサイトから「tortoisehg-2.5.1-hg-2.3.2-x86.msi」をダウンロードします。。

インストールの確認

コマンドプロンプトで以下のコマンドを実行します。

hg

Mercurial Distributed SCM

basic commands:

 add           add the specified files on the next commit
 annotate      show changeset information by line for each file
 clone         make a copy of an existing repository
 commit        commit the specified files or all outstanding changes
 diff          diff repository (or selected files)
 export        dump the header and diffs for one or more changesets
 forget        forget the specified files on the next commit
 init          create a new repository in the given directory
 log           show revision history of entire repository or files
 merge         merge working directory with another revision
 phase         set or show the current phase name
 pull          pull changes from the specified source
 push          push changes to the specified destination
 remove        remove the specified files on the next commit
 serve         start stand-alone webserver
 status        show changed files in the working directory
 summary       summarize working directory state
 update        update working directory (or switch revisions)

use "hg help" for the full list of commands or "hg -v" for details

Mercurialで使える基本コマンドが表示されます。gitと似たコマンドがたくさんあります。インストールできていることを確認できました。

念のため確認しておくと、インストールディレクトリ(C:\Program Files\TortoiseHgMercurial)にhg.exeがあり、このディレクトリにPATHが通っていました。

また、右クリックのメニューにTortoiseHgの項目が増えています。

リポジトリclone

bitbucketのDash Boardから、作成したリポジトリを選択します。そのリポジトリのcloneと書かれたボタンを押下し、リポジトリURLを確認後、任意のディレクトリにて、下記コマンドを実行します。

git clone https://ksomemo@bitbucket.org/ksomemo/test.git
Cloning into test...
Password:
warning: You appear to have cloned an empty repository.

ローカルにリポジトリがcloneされます。

コミットとプッシュ

適当なファイルを作成し、コミット後にbitbucketにpushします。

git add README
git ci -m "initial commi."

[master (root-commit) f2aaf82] initial commit.
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 README
git push origin master

Password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 219 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: bb/acl: ksomemo is allowed. accepted payload.
To https://ksomemo@bitbucket.org/ksomemo/test.git
 * [new branch]      master -> master

bitbucketに反映されました。

その他

このほかにもforkや、コードの差分表示、pull requestなども行えるようです。以下を参考にしてみてください。

参考