Bitbucket Cloud でのブランチの使用方法
目的
このチュートリアルでは Git および Bitbucket Cloud を使用したブランチの作成、操作、レビュー、マージの概要について説明します。
所要時間 | 対象者 | 前提条件 |
---|---|---|
35 分 | あなたはすでに基本的な Git ワークフローを理解しています | Git をインストール済である |
Bitbucket アカウントを持っている |
このチュートリアルは、以下の方法を含む基本的な Git ワークフローをすでに理解している人のためのものです。
- クローン: Bitbucket Cloud のリモート リポジトリをローカル システムにコピーする
- 追加またはステージ : 実施した変更を取り出し、Git 履歴に追加する準備を整える
- コミット: リポジトリの Git 履歴に新しいファイルまたは変更されたファイルを追加する
- プル: 他のユーザーがリポジトリに追加した新しい変更をローカル リポジトリに入れる
- プッシュ: ローカル システムからリモート リポジトリに変更を取得する
Git の基本がわからない場合は、Bitbucket Cloud での Git の使用方法のチュートリアルを確認すればすぐに理解できるようになります。
セットアップする
チームで連携していることを認識できるように、よく使われる Bitbucket リポジトリで、当社が提供しているパブリックリポジトリをフォークしていただきます。
- tutorials/tutorials.git.bitbucket.org に移動します。
- 画面の左側にある[ + > Fork this repository (このリポジトリをフォーク)] の順にクリックします。
- チームに一意になるように名前を変更し、[Fork repository (リポジトリのフォーク)] をクリックします。
- 簡単にナビゲートできるリポジトリのディレクトリを作成します。次のようなものを選択します。
$ mkdir test-repositories $ cd test-repositories/ $ test-repositories
- 作成したディレクトリにフォークされたリポジトリをクローンします。これは、次のようになります。
$ git clone https://dstevenstest@bitbucket.org/dstevenstest/mygittutorial.bitbucket.io.git Cloning into 'mygittutorial.bitbucket.io'... remote: Counting objects: 12392, done. remote: Compressing objects: 100% (12030/12030), done. remote: Total 12392 (delta 8044), reused 564 (delta 360) Receiving objects: 100% (12392/12392), 2.72 MiB | 701.00 KiB/s, done. Resolving deltas: 100% (8044/8044), done. $ cd mygittutorial.bitbucket.io/
ブランチの作成とブランチワークフローを使用した変更
このブランチであなたのウェブサイトに見積もりを追加します。
- git branch コマンドを使用してブランチを作成します。
$ git branch test-1
- git checkout コマンドを使用して作成したブランチをチェックしてください。
$ git checkout test-1 Switched to branch 'test-1'
- git branch コマンドを使用して、ローカルに保持しているブランチを一覧表示します。
$ git branch main * test-1
- editme.html ファイルの更新には見積もりを追加します。次のように表示されるはずです。
This is a quote, and I like it.
A quote: The Art of Quoting - その変更を追加します。
git add editme.html
- わかりやすく説明したコミット メッセージを付けて変更をコミットします。
git commit editme.html -m'added a new quote' [test-1 063b772] added a new quote 1 file changed, 3 insertions(+), 3 deletions(-)
- git push コマンドを使用してその変更を Bitbucket にプッシュします。
git push fatal: The current branch test-1 has no upstream branch. 現在のブランチをプッシュし、リモートを上流に設定するには、 git push --set-upstream origin test-1 を使用します。
- ブランチをプッシュし、git push branch コマンドを使用して変更します。
$ git push origin test-1 Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 363 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: remote: Create pull request for test-1: remote: https://bitbucket.org/dstevenstest/dans.git.bitbucket.org/pull-requests/new?source=test-1&t=1 remote: To https://bitbucket.org/dstevenstest/dans.git.bitbucket.org.git * [new branch] test-1 -> test-1
- チュートリアルのリポジトリを開いて、ブランチをクリックします。main ブランチと test-1 ブランチの両方を確認できるようになるはずです。表示は次のようになります。

リモートブランチの作成、フェッチ、チェックアウト
チーム作業の場合は、他のチーム メンバーが作成して Bitbucket にプッシュするブランチをプルまたはフェッチする必要があります。この例では、他のユーザーが作成したブランチの作成と作業の基本をいくつか紹介します。
- ブランチBitbucket でチュートリアル リポジトリに移動し、Branches をクリックします。次のような情報が表示されます。
- [ブランチの作成] をクリックし、ブランチに test-2 と名前を付け、[作成] をクリックします。
- ブランチ ダイアログのチェックアウトに表示された Git fetch コマンドをコピーします。これは、次のようなイメージです。
$ git fetch && git checkout test-2 From https://bitbucket.org/dstevenstest/dans.git.bitbucket.org * [new branch] test-2 -> origin/test-2 Branch test-2 set up to track remote branch test-2 from origin. Switched to a new branch 'test-2'
- ターミナルで git branch コマンドを使用します。次のようなブランチのリストが表示されます。
$ git branch main test-1 * test-2
- git status コマンドを使用すると、次のように表示されるはずです。
$ git status On branch test-2 Your branch is up-to-date with 'origin/test-2'. nothing to commit, working tree clean
- git checkout コマンドを使用して、他のブランチにもう一度注目します。コマンドは次のようになります。
$ git checkout test-1 Switched to branch 'test-1' Your branch is ahead of 'origin/test-1' by 3 commits. (use "git push" to publish your local commits)
変更のプッシュとプルリクエストの作成
今度は、最初の変更をレビューし、ブランチをマージします。
- [+> プル リクエストを作成] をクリックします。ソース ブランチとして test-1 ブランチ、およびマージ先ブランチに main があることを確認できます。
- [プル リクエストの作成] をクリックします。
- 差分 (editme.html ファイルに加えた変更を表示する領域) の行を選択して、プル リクエストにコメントを付けます。
- ページの左上にある [Approve (承認)] をクリックします。もちろん、実際のプル リクエストでは、レビュアーがコメントを作成します。
- [マージ] をクリックします。
- (オプション) コミット メッセージに詳細を追加して更新します。
- Merge commit マージ戦略を 2 つのオプションから選択します。
- Merge commit - ソース ブランチのすべてのコミットを保持し、それらを宛先ブランチの一部にします。このオプションは、コマンド ラインで git merge --no-ff と入力した場合と同じです。
- Squash - ソース ブランチを宛先ブランチにマージする際にコミットを組み合わせます。このオプションは、コマンド ラインで git merge --squash と入力した場合と同じです。
- [コミット] をクリックすると、マージしたブランチが大きな変更スキームにどのように収まるかがわかります。
ブランチを削除してローカルで動作するブランチへ main をプルする
ここまでで基本的なブランチ ワークフローの手順を踏んで、変更が main に保存されました。最後に学習するのは、マージしたブランチを削除する方法です。更新した main ブランチをプルして、test-2 ブランチにマージします。
- ターミナルを開き、git status コマンドを実行すると、結果は次のようになるはずです。
$ git status On branch test-1 nothing to commit, working tree clean
- git checkout main コマンドを実行して、main ブランチに切り替えます。結果は次のようになるはずです。
git checkout main Switched to branch 'main' Your branch is up-to-date with 'origin/main'.
- git pull コマンドを実行します。結果は次のようになるはずです。
$ git pull remote: Counting objects: 1, done. remote: Total 1 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (1/1), done. From https://bitbucket.org/dstevenstest/dans.git.bitbucket.org 2d4c0ab..dd424cb main -> origin/main Updating 2d4c0ab..dd424cb Fast-forward editme.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
- test-1 ブランチを削除するには、git branch -d {branch_name} コマンドを実行します。結果は次のようになります。
$ git branch -d test-1 Deleted branch test-1 (was 063b772)
- git checkout コマンドを実行して、test-2 ブランチに切り替えます。
$ git checkout test-2 Switched to branch 'test-2' Your branch is up-to-date with 'origin/test-2'.
- git merge main test-2 コマンドを使用して、main ブランチを作業ブランチにマージします。結果は次のようになります。
$ git merge main test-2 Updating 2d4c0ab..dd424cb Fast-forward editme.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
- アクティブなブランチは重要です。main を test-2 にマージする場合は、test-2 をチェック アウト (アクティブ) にします。test-2 を main にマージする場合も同様で、main をチェック アウトする必要があります。
- どのブランチがアクティブなのかは、Git ブランチでいつでも確認でき、アクティブなブランチにはアスタリスクがついています。または Git ステータスを使用すると、あなたのブランチと保留になっているローカルの変更があるかどうかがわかります。
ブランチの一部、およびそれに関連するコマンドについて理解できたと思います。それでは、学習した内容を振り返ってみましょう。
ブランチワークフローの確認
Git のフィーチャー ブランチ ワークフローは、Bitbucket におけるチームの作業開始に役立つ効果的な方法です。このワークフローでは、main ブランチから分岐する各ブランチにすべての機能開発タスクが割り当てられます。これによって、複数の開発者が main コードに触れずにそれぞれの機能開発に取り組めます。
![]() | main ブランチから開始するこのワークフローは、2 人以上のグループでコードに対して共同で取り組む場合に役立ちます。Bitbucket とローカル リポジトリが同期されているのを確認したら、ワークフローを開始しましょう。 |
new-branch を作成する各フィーチャーまたは作業中の課題で別々のブランチを使います。ブランチを作成したら、ローカルでチェックアウトして、加えたすべての変更がそのブランチに含まれるようにします。 | |
変更の更新、追加、コミット、プッシュGit を使っているときと同じように、機能での作業を行ってコミットを実行します。準備ができたら、コミットをプッシュして、Bitbucket のフィーチャー ブランチを更新します。 | |
コードのレビューを依頼するBitbucket でプル リクエストを作成して、コードへのフィードバックを依頼します。そこからレビュアーを追加してマージの前に問題がないことを確認できます。 | |
フィードバックを解決するチームメイトがコメントを追加して、コードを承認しました。コメントをローカルで解決して、変更を Bitbucket にコミットおよびプッシュします。更新内容がプル リクエストに表示されます。 | |
ブランチをマージするマージの前に、他の人がリポジトリに変更を加えた場合はマージの競合を解決する必要があることがあります。プル リクエストが承認されて競合がなくなったら、コードを main ブランチに追加できます。Bitbucket でプル リクエストからマージします。 |
ブランチによってチームがより効果的に作業する方法は、このチュートリアルではすべて紹介しきれません。ブランチの作成には複数のアプローチがありますが、その一部をワークフローの比較で説明します。