tanaka's Programming Memo

プログラミングについてのメモ。

BitBucketを使ってみる

共同作業にはGitHubが便利ですが、複数人数でプライベートリポジトリーを使おうとすると少々のコストが発生します(学生であれば無料でプライベートリポジトリーやチームが使える学生アカウントを使える可能性があるので、学校に問い合わせてみてください!)

ちょっと練習したい、とか、完全な非営利のプロジェクトだし、とか、不幸にもGitHubの学生アカウントの登録に協力してもらえない学校の学生だったとかの場合、代替手段としてBitBucket (ビットバケット)やGitLab (ギットラボ)を使うことで同様のことが可能になります。

BitBucketの登録から、プライベートリポジトリーを作って、SourceTreeにクローンするまでの手順をまとめます。

目次

前提

  • 登録にはメールアドレスが必要です

BitBucketとは

ATLASSIAN(アトラシアン)という会社が提供しているクラウドサービスです。無料プランで、プライベートリポジトリーを持てたり、プライベートリポジトリーに5名までメンバーを追加することができます。公開リポジトリーならメンバーの人数制限はないようです(あったらお知らせいただければ幸いです)。

GitBucketというのもあって名前がややこしいですが、GitBucketはGitHubと同様の機能を提供するサーバー用のソフトウェアのことです。BitBucketは、GitBucketを使ってチーム開発向けの機能を提供しているサービスのことです。

無償という点では、プライベートリポジトリーに加えてユーザー数も無制限のGitLab.comの方がお得っぽいのですが、諸事情でBitBucketの方を現在利用しているので、まずはこちらの使い方をまとめます。

BitBucketのアカウントを作成する

まずはアカウントをBitBucketに作成します。

f:id:am1tanaka:20180629164214p:plain

  • 登録に使うメールアドレスを入力して、Continueボタンをクリックします
  • フルネーム欄に表示名を入力して、設定したい8文字以上のパスワードを入力して、私はロボットではありませんにチェックを入れて、Continueボタンをクリックします

f:id:am1tanaka:20180629164700p:plain

登録したメールアドレスに確認用のメールが送信されます。メールを開きます。

f:id:am1tanaka:20180629165025p:plain

HTMLメールだった場合は、Verify my email addressボタンをクリックします。

HTMLメールで見れない場合は、以下のようなリンクを見つけて、URLをコピーしてWebブラウザーで開きます。

f:id:am1tanaka:20180629165450p:plain

アカウントの登録画面が表示されれば完了です。

f:id:am1tanaka:20180629171140p:plain

変更したい項目があれば変更してSaveボタンを押します。そのままでよければリポジトリーの作成に進みましょう。

プライベートリポジトリーを作成する

動作確認のためのリポジトリーをプライベートで作成してみましょう。

  • Bitbucket | The Git solution for professional teamsを開きます
  • 右上のLog inをクリックして、登録したメールアドレスとパスワードでログインします
  • 最初の接続時にはユーザー名を設定する画面が表示されます。使われてなさそうなユーザー名を半角英数で考えて入力してください

f:id:am1tanaka:20180629171552p:plain

  • 簡単なアンケートが表示されます。回答してSubmitをクリックするか、Skipで飛ばします

f:id:am1tanaka:20180629171653p:plain

  • まだリポジトリーがないと以下のような画面が表示されます。一般的な操作に慣れるために、左上のバーガーメニュー(三本線のアイコン)をクリックします

f:id:am1tanaka:20180629171841p:plain

  • 通常はこのメニューがウィンドウの左に表示されます。+をクリックします

f:id:am1tanaka:20180629171906p:plain

  • リポジトリーが作りたいので、Repositoryをクリックします

f:id:am1tanaka:20180629172002p:plain

  • 以下のように設定します
    • リポジトリ名にfirstなどと入力
    • アクセスレベルにチェックを入れると非公開にできます
    • READMEファイルはあった方がよいので、Yes, with a templateを選択します
    • 以上で、リポジトリの作成ボタンをクリックします

f:id:am1tanaka:20180629172126p:plain

以上でリポジトリーが作成されました。Cloneボタンをクリックすると、クローンのための情報が確認できます。

f:id:am1tanaka:20180629172359p:plain

コマンドだけで操作するのはしんどいので、SourceTreeをインストールしましょう。

SourceTreeをインストールする

Gitクライアントでよく使われているものの一つがSourceTreeです。このソフトもBitBucketのATLASSIANが提供しているものです。他にもTrelloなどがATLASSIANのサービスで、共同作業に関する多くのサービスを網羅している企業です。

SourceTreeは、BitBucketだけではなく、GitHub、GitLabのリポジトリーも管理できます。

f:id:am1tanaka:20180629211112p:plain

  • Atlassianアカウントの方がログインが楽なのでそっちをクリックします

f:id:am1tanaka:20180629211903p:plain

  • 登録したメールアドレスを入力して、Continueをクリックします

f:id:am1tanaka:20180629212045p:plain

  • 同様にパスワードを入力してログインします
  • 以下の通り登録が完了したら、次へをクリックします

f:id:am1tanaka:20180629212329p:plain

  • 今回はGitを利用したいので、Gitがインストールされているか、以下のようにNot Installだった場合はチェックした状態で次へをクリックします

f:id:am1tanaka:20180629212511p:plain

  • ダウンロードが完了するのを待って、完了したら次へをクリックします

f:id:am1tanaka:20180629212750p:plain

  • SSHを作成済みの場合ははいを選んで、公開キーのファイルを指定してください。よくわからない場合はいいえを選んでください

f:id:am1tanaka:20180629213016p:plain

以上でインストールと設定完了です。

f:id:am1tanaka:20180629213114p:plain

SourceTreeにリポジトリーをクローンする

先に作成したプライベートリポジトリーをクローンしてみます。

初めての場合は、すぐにRemoteのクリックへ進んでください。2回目以降の場合は、新しいタブをクリックして開いてから、Remoteに進んでください。

f:id:am1tanaka:20180630002958p:plain

※2回目以降の場合は+タブをクリックしてから

  • Remoteをクリックします

f:id:am1tanaka:20180630002836p:plain

  • 初めての作業の時はアカウントを追加します。左のアカウントを追加の+をクリックします

f:id:am1tanaka:20180630003104p:plain

  • ユーザー名などが空欄の場合、OAuthトークンを再読み込みをクリックします

f:id:am1tanaka:20180630003251p:plain

  • BitBucketに登録したメールアドレスとパスワードを入力して、ログインをクリックします

f:id:am1tanaka:20180630003342p:plain

  • パスワードの保存はどちらでもよいです
  • アクセスを許可します

f:id:am1tanaka:20180630003442p:plain

  • こういうのが表示されれば成功です。SourceTreeに戻ります

f:id:am1tanaka:20180630003507p:plain

  • 認証に成功してユーザー名が設定されていたら、OKをクリックします

f:id:am1tanaka:20180630003554p:plain

以上で、SourceTreeとBitBucketの接続が完了したので、リポジトリーが一覧表示されるようになります。

f:id:am1tanaka:20180630003707p:plain

  • クローン先のフォルダーを指定して、クローンボタンをクリックします
    • 赤枠の欄に設定したフォルダーの直下にリポジトリーの内容がクローンされます。プロジェクト名まで指定した方がよいです

f:id:am1tanaka:20180630004129p:plain

クローン完了です。画面のエクスプローラで開くをクリックすると、クローン先のフォルダーを確認することができます。

f:id:am1tanaka:20180630004411p:plain

f:id:am1tanaka:20180630004443p:plain

内容を変更してコミット

コミットしてみましょう。まずはファイルに変更を加えます。

  • エクスプローラーで開くしたフォルダーのREADME.mdをメモ帳などで開きます
  • 以下のように何か書き加えて上書き保存します

f:id:am1tanaka:20180630004659p:plain

  • SourceTreeに切り替えると、作業ツリーのファイルのところに、README.mdが確認できます。これは、README.mdが変更されていて、まだ管理対象に登録されていないという状況です

f:id:am1tanaka:20180630004752p:plain

  • コミットする対象をIndexに追加する必要があるので、全てインデックスに追加をクリックします

f:id:am1tanaka:20180630004957p:plain

  • README.mdが上部のIndexにステージしたファイル欄に移動しました。これで、コミット準備完了です

f:id:am1tanaka:20180630005021p:plain

  • コミットボタンをクリックします

f:id:am1tanaka:20180630005130p:plain

  • 画面下にコミットする概要を入力して、コミットボタンをクリックします

f:id:am1tanaka:20180630005246p:plain

  • 誰がコミットしたかの情報を登録します。これはアカウントとは関係ないので、ハンドル名や連絡用のメールアドレスで構いません

f:id:am1tanaka:20180630005426p:plain

通常はこの段階でコミットできているはずですが、自分の環境だとうまくいきませんでした。コミットができていなさそうだったら、以下の手順で再度コミットしてみてください。

  • 左からmasterをクリックして画面を切り替えます

f:id:am1tanaka:20180630005709p:plain

  • 改めて左上のコミットボタンをクリックします

f:id:am1tanaka:20180630005727p:plain

  • 右下のコミットボタンをクリックします

f:id:am1tanaka:20180630005516p:plain

以上でコミットが完了しました。プッシュ欄に1というバッジが表示されればOKです。

f:id:am1tanaka:20180630005832p:plain

文字コードについて

コミットした内容を確認してみます。masterをクリックして、README.mdをクリックします。そうすると、右下に変更内容が表示されます。

f:id:am1tanaka:20180630010114p:plain

なんか文字化けしてます。macでは大丈夫かも知れません。SourceTreeはデフォルトの文字コードUTF-8のため、ShiftJISがデフォルトのメモ帳とかち合ってしまったのです。

README.mdを開きなおして、UTF-8で保存しなおします。

f:id:am1tanaka:20180630010342p:plain

再び、全てインデックスに追加 -> コミット -> メッセージを入力 -> コミットをして、変更をコミットします。

f:id:am1tanaka:20180630010508p:plain

f:id:am1tanaka:20180630010554p:plain

これで文字化けが治りました。

f:id:am1tanaka:20180630010622p:plain

プッシュする

では、コミットした内容をBitBucketにアップロードするためにプッシュします。

  • プッシュをクリックします

f:id:am1tanaka:20180630010712p:plain

  • プッシュしたいブランチを選択して、プッシュします

f:id:am1tanaka:20180630010802p:plain

以上でプッシュ完了です。BitBucketを開いて、リポジトリーを確認してみてください。README.mdの変更が反映しています。

f:id:am1tanaka:20180630011040p:plain

まとめ

BitBucketの利用開始方法と、簡単な操作練習として以下をご紹介しました。

  • BitBucketにユーザー登録
  • プライベートリポジトリーfirstの作成
  • GUIのGitクライアントSourceTreeのインストール
  • SourceTreeとBitBucketアカウントの連携設定
  • SourceTreeで、BitBucketに作成したfirstをクローン
  • クローンしたREADME.mdを変更
  • コミット&プッシュ

意味が分からなくても、ここの手順に従って操作をしてみてください。Gitはとても便利なのですが、分散開発を実現するために、ほかのバージョン管理ツールに比べると複雑なところがあります。慣れないと理解できないことが色々とあるので、壊してもよいリポジトリーを作成して、あれこれ試してみてください。

用語説明

Git関連の用語を簡単にまとめておきます。参考までに。

リポジトリー(Repository)

  • 日本語にすれば倉庫。バージョン管理のためのデータベースのデータのことです

公開リポジトリ

  • GitHubやBitBucketの公開リポジトリーは、インターネット上で誰からでも中身を見たり、クローンすることができます

プライベートリポジトリー

クローン(Clone)

  • リポジトリーから作業用のフォルダーにファイルを取り出すことです

インデックスに追加する

  • Gitで管理したい変更を登録することです

コミット(Commit)

  • 変更した内容を作業しているローカル環境に記録することです
  • この状態では、まだサーバーには変更は書き込まれていません。いざという時は、作業用のフォルダーを削除して、クローンし直せば、全てなかったことにできます

プッシュ(Push)

  • コミットした変更点を、サーバーのリポジトリーにアップロードします
  • プッシュすることで、BitBucketにあるリポジトリーに作業した変更が反映されます

フェッチ(Fetch)

  • サーバーのリポジトリーの最新の情報を作業用の環境に取得します
  • フェッチをするだけでは、作業用フォルダーの中身は変更されません

プル(Pull)

  • サーバーのリポジトリーの変更を、作業用フォルダーに反映させます
  • フェッチせずに直接プルすることもできます。一人で作業している場合はこれでよいと思います

ブランチ(Branch)

  • 日本語で枝という意味です
  • 複数の状態のリポジトリーを作ることができます
  • 開発者や開発内容ごとに、別のブランチを作成して、作業が完了したら、masterブランチにマージ(結合)するような使い方をします
  • 一人で開発する場合は使わなくてもなんとかなります(使った方がいいですが)

マージ(Merge)

  • 他のブランチや、ほかの人の変更内容を合体させる処理です

コンフリクト(Conflict)

  • 日本語でいうと衝突です
  • 同時に同じファイルの同じ個所を変更した時に起こります
  • どちらが最新版が分からないため、自動的に解決することができません。プログラマーが相談した上で、衝突箇所を解消する必要があります
  • 基本的には、衝突を起こさないように開発するのがベストです。GitHub Flowと呼ばれる手法などが考案されています

参考URL