Bitbucket Cloud での Git の使用方法
目的
この包括的な Git トレーニングで、Git の基本を学習しましょう。
ミッションの概要
あなたのミッションは、このチュートリアルで Git を学び、チームの宇宙ステーションをすべて追跡していくことです。このチュートリアルで説明するコマンド
- git clone、git config、git add, git status、git commit、git push、git pull、git branch、git checkout、および git merge
所要時間 | 対象者 | 前提条件 |
---|---|---|
30 分 | Git リポジトリと Bitbucket Cloud を初めて使用する場合 | Git をインストール済である |
Bitbucket アカウントを持っている |
Git リポジトリを作成する
新しい Bitbucket 宇宙ステーションの管理者として、整理を行う必要があります。宇宙ステーション用にファイルを作成する時は、それらを 1 箇所に保存してチームメートが宇宙のどこにいても共有できるようにします。Bitbucket では、これはリポジトリにすべてを追加するということを意味します。1 つ作成してみましょう。
リポジトリの醍醐味
- 作業中のファイルが1つか、複数かに関係なく、ローカルリポジトリですべてのファイルにアクセスできます。
- Bitbucket アカウントがなくてもパブリックリポジトリの URL を知っていれば表示できます。
- 各リポジトリは、ユーザーアカウントまたはチームに帰属します。ユーザーアカウントの場合、そのユーザーはリポジトリを所有しています。一方、チームの場合、リポジトリはそのチームの所有になります。
- リポジトリ所有者はリポジトリを削除できる唯一のユーザーです。リポジトリがチームに帰属する場合、管理者がリポジトリを削除できます。
- コードプロジェクトは、複数のアカウントが関係する複数のリポジトリで構成されますが、単一アカウントの単一リポジトリでも可能です。
- 各リポジトリのサイズは 2 GB に制限されていますが、1 GB を超えないように利用することをお勧めします。
ステップ 1. リポジトリの作成
最初に、Bitbucket で作成するリポジトリにはコードは入っておらず空の状態です。これからいくつかのファイルを追加していくので空で問題ありません。Bitbucket リポジトリはご使用のファイルの中央リポジトリになり、権限を与えられたユーザーはそのリポジトリにアクセスできます。 リポジトリの作成後、ローカルシステムにバージョンをコピーします。このようにして、1つのリポジトリから別のリポジトリへ変更を転送することでリポジトリを更新できます。
以下に従ってリポジトリを作成します。
-
Bitbucket のグローバルサイドバーで + アイコンをクリックし、リポジトリ を選択します。
新しいリポジトリの作成ページが表示されます。少し時間をかけてダイアログの内容を確認します。リポジトリタイプを除き、このページで入力した内容はすべて後から変更できます。
-
「
BitbucketStationLocations
」を 名前 フィールドに入力します。Bitbucket はリポジトリの URL にこの 名前 を使用します。例えば、ユーザーthe_best
がawesome_repo
というリポジトリを持っている場合、そのリポジトリの URL はhttps://bitbucket.org/the_best/awesome_repo
になります。 -
アクセスレベルでは、[これは非公開リポジトリです] ボックスを選択したままにします。非公開リポジトリは、自分と、アクセス権を与えられたメンバーのみが見ることができます。このボックスをオフにした場合、誰でもこのリポジトリを見ることができます。
-
リポジトリタイプ で Git を選択します。リポジトリの作成 をクリックした後でリポジトリタイプを変更することはできません。
-
リポジトリの作成 をクリックします。Bitbucket によってリポジトリが作成され、概要 ページが表示されます。
ステップ 2. リポジトリの探索
少しの間、作成したばかりのリポジトリを探索します。今あなたはリポジトリの 概要 ページにいるはずです。

リポジトリに対する一般的な操作を行うには、グローバルサイドバーの + をクリックします。ナビゲーションサイドバーの各項目をクリックすると、その画面が表示されます。例えば設定画面では、リポジトリの詳細やその他の設定を更新できます。キーボードで ? キーを押すと、項目間を移動するためのショートカットが表示されます。
サイドバーで コミット をクリックすると、リポジトリにコンテンツを作成していないため、コミットがないことがわかります。リポジトリは非公開になっており、誰もリポジトリに招待していません。そのため、この時点でリポジトリのコンテンツを作成または編集できるのは、リポジトリの所有者であるあなただけです。
Git リポジトリをコピーしてファイルを追加する
これで、宇宙ステーションファイルを追加および共有する場所ができました。次に、ローカルシステムからそれらを取得する方法が必要です。これを設定するには、Bitbucket リポジトリを自分のシステムにコピーします。Git では、はリポジトリのコピーを「クローン」と呼びます。リポジトリをクローンする際、Bitbucket サーバー (Git が原点として認識しているサーバー) とローカルシステムの間で接続を確立します。
ステップ 1. ローカルシステム上でリポジトリをクローンする
デスクトップでブラウザーと端末ウィンドウを開きます。端末ウィンドウを開いた後、次の手順を実行します。
- ホーム (〜) ディレクトリに移動します。
$ cd ~
-
Bitbucket を使用すればするほど、おそらく複数のリポジトリで作業することになります。そのため、すべてのリポジトリを含むディレクトリを作成すると便利です。
-
自分のリポジトリを含むディレクトリを作成します。
$ mkdir repos
- 端末から、新しいリポジトリディレクトリで作業したいディレクトリを更新します。
$ cd ~/repos
-
Bitbucket から、BitbucketStationLocations リポジトリに移動します。
-
グローバルサイドバーで + アイコンをクリックし、このリポジトリをクローンする を選択します。
Bitbucket にポップアップクローンダイアログが表示されます。クローンダイアログに表示される既定のプロトコルは、設定画面にて HTTPS または SSH に設定されています。このチュートリアルの際は、既定のプロトコルを変更しないようにしてください。
-
ハイライトされたクローンコマンドをコピーします。
-
端末ウィンドウで、Bitbucket からコピーしたコマンドを貼り付け、戻るを押します。
-
端末から要求されたら、Bitbucket パスワードを入力します。Google にリンクしてアカウントを作成する場合、そのアカウントのパスワードを使用します。
-
Windows パスワードエラーが発生した場合:
-
Microsoft Windows オペレーティングシステムの一部のバージョンと Git の組み合わせでは、次のようなエラーが発生する場合があります。
Windows クローンパスワードエラーの例
-
-
$ git clone
https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git
Cloning into 'bitbucketspacestation'...
fatal: could not read
Password for 'https://emmap1@bitbucket.org': No such file or directory
-
-
- このエラーが表示されたら、コマンドラインに以下を入力します。
-
$ git config --global core.askpass
-
-
- 次に、ステップ 4 に戻って複製プロセスを繰り返します。このとき、bash エージェントによってパスワードが要求されます。この操作は 1 度のみ実行する必要があります。
- この時点で、ご使用の端末画面には以下のような内容が表示されます。
-
$ cd ~/repos
$ git clone https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git
Cloning into 'bitbucketstationlocations'...
Password
warning: You appear to have cloned an empty repository.
-
-
ご使用のリポジトリは空でしたね?まだソースファイルを追加していなかったことを思い出してください。
-
-
リポジトリディレクトリのコンテンツをリストすると、
bitbucketstationlocations
ディレクトリが表示されます。
$ ls
おめでとうございます。これで、ローカルシステム上でリポジトリをクローンしました。
ステップ 2. ファイルをローカルリポジトリに追加して、Bitbucket に配置します。
ローカルシステムのリポジトリで、作業を始めましょう。全宇宙ステーションの場所の追跡を開始しましょう。これを行うには、すべての場所についてファイルを作成します。
- 端末画面で、ローカルリポジトリのトップレベルに移動します。
$ cd ~/repos/bitbucketstationlocations/
- 次の行を端末ウィンドウに入力して、新しいファイルとコンテンツを作成します。
$ echo "Earth's Moon" >> locations.txt
-
コマンドラインから何も返されない場合は、ファイルが正しく作成されています。
-
ローカル リポジトリのステータスを取得します。
git status
コマンドは、Bitbucket リポジトリと比較した上でプロジェクトの進行状況を伝えます。この時点で、Git は新しいファイルが作成されたことを認識し、次のような内容が表示されます。
$ git status
On branch main
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
locations.txt
nothing added to commit but untracked files present (use "git add" to track)
-
ファイルは追跡されません。つまり、Git は以前のコミットの一部でないファイルを確認します。ステータス出力にも次のステップ(ファイルの追加)が表示されます。
-
Git に対し、新しい
locations.txt
ファイルを、git add
コマンドを使用して追跡するよう伝えます。ファイルを作成したときのように、正しく入力されていればgit add
コマンドは何も返しません。
$ git add locations.txt
-
git add
コマンドは変更を作業ディレクトリから Git ステージングエリアに移動します。ステージングエリアでは、公式履歴にコミットする前に変更のセットのスナップショットを準備します。
-
このフィルのステータスを確認します。
$ git status
On branch main
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: locations.txt
-
これで、新しいファイルが追加され (ステージング)、準備が整ったらコミットできます。
git status
コマンドには、ディレクトリとステージングされたスナップショットの状態が表示されます。
-
次の行のように、コミットメッセージ付きで
git commit
コマンドを発行します。-m は、コミットメッセージが続くことを示します。
$ git commit -m 'Initial commit'
[main (root-commit) fedc3d3] Initial commit
1 file changed, 1 insertion(+)
create mode 100644 locations.txt
-
git commit
はステージされたスナップショットを取得し、プロジェクト履歴にコミットします。git add
と組み合わせ、このプロセスはすべての Git ユーザーに基本的なワークフローを定義します。ここまでで、作成したものはローカルシステムにあり、変更をプッシュするまで、Bitbucket リポジトリには反映されません。
-
Git とリモートリポジトリの詳細を学習しましょう。
-
リモートリポジトリと通信する Git の機能 (この場合、Bitbucket がリモートリポジトリです) は、あらゆる Git ベースのコラボレーションワークフローの基盤です。
-
Git のコラボレーションモデルでは、各開発者にリポジトリのコピーがあり、ローカルの履歴やブランチ構造を完全な形で保有しています。開発者は、他の開発者と個々の変更を共有する必要はなく、通常は一連のコミットをまとめて共有します。Git では作業コピー内の個々の変更項目を中央リポジトリにコミットするのではなく、ブランチ全体をリポジトリ間で共有します。
-
他のリポジトリとの接続を管理し、他のリポジトリにブランチを "プッシュ" することによってローカルの履歴を公開します。ブランチをローカルリポジトリに "プル" することによって他の開発者の進捗状況を確認することができます。
-
-
-
ローカル端末ウィンドウに戻って、
git push origin main
を使用してコミットした変更を Bitbucket に送信します。このコマンドは、原点 (Bitbucket server) で main ブランチ (Bitbucket のブランチ) にプッシュすることを指定しています。次のような応答が表示されます。
$ git push origin main
Counting objects: 3, done.
Writing objects: 100% (3/3), 253 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0) To https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git
* [new branch] main -> main
Branch main set up to track remote branch main from origin.
-
コミットは今、リモートリポジトリ (起点) にあります。
-
Bitbucket の BitbucketStationLocations リポジトリに移動します。
-
サイドバーのコミットをクリックすると、リポジトリに 1 つのコミットが表示されます。Bitbucket では、そのコミットに対して行ったすべての操作が組み合わされて表示されます。作成者列には、Git グローバルファイル
( ~/.gitconfig)
の構成時に使用した値が表示されます。
サイドバーのソースをクリックすると、先程追加した 1 つのソースファイルlocations.txt
がリポジトリにあるのがわかります。
最初に作成した際、リポジトリはどのように見えていたかを覚えていますか。おそらく今とは少し異なっていたでしょう。
Bitbucket クラウドで Git リポジトリから変更をプルする
次に、宇宙ステーション管理者アクティビティのリストでは、場所に関する詳細情報を含むファイルが必要です。今は多くの場所がないため、Bitbucket から直接す追加します。
ステップ 1. Bitbucket でのファイルの作成
新しい場所のファイルを追加する手順
-
BitbucketStationLocations リポジトリから、ソースをクリックしてソースディレクトリを開きます。ディレクトリには、
locations.txt
という 1 つのファイルがあります。A. ソース ページ: リンクをクリックしてこのページを開きます。
A. ブランチ選択: 表示するブランチを選択します。
C. その他のオプション ボタン: クリックすると「ファイルを追加」など、その他のオプション メニューが開きます。
D. ソース ファイル エリア: Bitbucket 内のファイルのディレクトリを表示します。 -
[ソース] ページの右上で [その他のオプション] ボタンをクリックしてメニューから [ファイルを追加] を選択します。[その他のオプション] ボタンは 1 つ以上のファイルをリポジトリに追加している場合にのみ表示されます。
次の画像のように、新しいファイルを作成するページが開きます。
Bitbucket の新しいファイルBitbucket の新しいファイル
A. 新規ファイルを追加するブランチ: ファイルを別のブランチに追加する場合は変更します。
B. 新規ファイル用のエリア: 新しいファイルのコンテンツをここに追加します。 -
stationlocations
を ファイル名 フィールドに入力します。 -
構文モード リストから HTML を選択します。
-
次の HTML コードをテキストボックスに追加します。
<p>Bitbucket has the following space stations:</p>
<p>
<b>Earth's Moon</b><br>
Headquarters
</p>
-
コミット をクリックします。次のメッセージと共に コミットメッセージ フィールドが表示されます:
stationlocations created online with Bitbucke
-
メッセージフィールドの下にある コミット をクリックします。
これで、Bitbucket に新しいファイルができました。コミットの詳細ページへ移動し、そこで行った変更を確認できます。

これまでに行ったコミットのリストを表示する場合は、サイドバーで コミット をクリックします。
ステップ 2. リモートリポジトリから変更をプル
次に、その新しいファイルをローカルリポジトリに取り込む必要があります。プロセスは非常に単純です。基本的には、Bitbucket へ locations.txt
ファイルを取り込んだ際に使用したプッシュを逆に実行するだけです。
ファイルをローカルのリポジトリにプルするには、次の手順を実行します。
- ターミナルウィンドウを開き、ローカルリポジトリのトップレベルに移動します。
$ cd ~/repos/bitbucketstationlocations/
git pull --all
コマンドを入力して、Bitbucket からのすべての変更をプルします (より複雑なブランチング ワークフローでは、すべての変更のプルやパージが適さない場合があります)。要求されたら Bitbucket パスワードを入力します。端末は次のようになるはずです。
$ git pull --all
Fetching origin
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://bitbucket.org/emmap1/bitbucketstationlocations
fe5a280..fcbeeb0 main -> origin/main
Updating fe5a280..fcbeeb0
Fast-forward
stationlocations | 5 ++++++++++++++
1 file changed, 5 insertions(+)
create mode 100644 stationlocations
-
git pull
コマンドは、1 つのコマンドで、リモートリポジトリ (Bitbucket) のファイルをローカルリポジトリへファイルをマージします。
-
ローカルシステムのリポジトリフォルダーに移動すると、追加したファイルが表示されます。
よくできました!宇宙ステーションの位置に関する 2 つのファイルを追加することで、Bitbucket とローカル・システムの間で基本的な Git のワークフロー (クローン、追加、コミット、プッシュ、プル) を実行してきました。
Git ブランチを使用してファイルをマージする
宇宙ステーション管理者に伴う責任場合によっては、情報が漏れないようにロックダウンしておく必要があります。特に、太陽系に新しい場所をマッピングするときは必要です。ブランチについて学習することで、ファイルの更新と、準備が完了したときにのみ情報を共有することができるようになります。
ブランチは、チームで作業しているときに最も力を発揮します。自分自身のブランチからプロジェクトの担当箇所に取り組み、Bitbucket から更新をプルし、その後、準備が整ったらメインブランチへ自分の作業すべてをマージすることができます。ドキュメントには、ブランチを使用する理由に関するより詳細な説明が含まれています。
ブランチとは、ご使用のリポジトリの独立した開発ラインを意味します。新しい作業ディレクトリ、ステージング領域、プロジェクト履歴のようなものと捉えてください。新しいブランチを作成する前に、自動でメイン ブランチで作業に取り掛かることになります。次の図は、メイン ブランチとその他のバグ修正更新のブランチを視覚的にわかるように示したものです。
ステップ 1: ブランチの作成と変更
まだコミットする準備が完了していない宇宙ステーションの今後の計画を追加できる場所にブランチを作成します。これらの計画を公開する準備ができたら、Bitbucket リポジトリに変更をマージし、その後で不要になったブランチを削除することができます。
ブランチが単なるコミットへのポインターであることを理解する必要があります。ブランチを作成したとしても、Git が行うのは新しいポインターの生成であり、ファイルやフォルダーの新しいセットを作成するのではありません。従って、開始する前、リポジトリは次のようになります。
ブランチを作成するには、次の手順を実行します。
- 端末ウィンドウで、次のコマンドを使用してローカルリポジトリのトップレベルに移動します。
cd ~/repos/bitbucketstationlocations/
-
端末ウィンドウでブランチを作成します。
$ git branch future-plans
-
このコマンドはブランチを作成しますが、そのブランチに移動はしません。したがって、リポジトリは次のようになります。
ここではリポジトリの履歴には何の変更も加えられません。新たに作られるのは現在のブランチに対する新しいポインターのみです。新しブランチで作業を開始するには、使用するブランチをチェックアウトする必要があります。
-
作成したばかりの新しいブランチをチェックアウトして使用を開始します。
$ git checkout future-plans
Switched to branch 'future-plans'
-
git checkout
コマンドは、git
ブランチと連携して機能します。何か新しい作業で機能するブランチを作成するため、新しいブランチを作成するたびに (git branch
を使用) 、チェックアウト (git checkout
を使用) するようにしてください。これで新しいブランチをチェックアウトしました。Git ワークフローは次のようになります。
-
ローカルシステムで
bitbucketstationlocations
フォルダーを検索し、開きます。新しいブランチの結果、ディレクトリ内に追加のファイルやフォルダーがないことに注目してください。 -
テキストエディタを使用して
stationlocations
ファイルを開きます。 -
他のステーションの位置を追加して、ファイルに変更を加えます。
<p>Bitbucket has the following space stations:</p>
<p>
<b>Earth's Moon</b><br>
Headquarters
</p>
<p>
<b>Mars</b><br>
Recreation Department
</p>
-
ファイルを保存して閉じます。
-
端末ウィンドウに
git status
と入力します。表示は次のようになります。
$ git status
On branch future-plans
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: stationlocations
no changes added to commit (use "git add" and/or "git commit -a")
-
On branch future-plans
行に注目してください。以前にgit status
を入力した場合、この行はbranch main
上にあります。これは、main branch
が 1 つしかないためです。変更をステージングまたはコミットする前に、この行を見て変更を追加するブランチがチェック アウトされていることをご確認ください。
-
ファイルを準備します。
$ git add stationlocations
-
次の図のように、端末ウィンドウで
git commit
コマンドを入力します。
$ git commit stationlocations -m 'making a change in a branch'
[future-plans e3b7732] making a change in a branch
1 file changed, 4 insertions(+)
-
このコミットにより、リポジトリは次のようになります。
次に、
main
ブランチで行った変更をマージします。
ステップ 2. ブランチのマージ: 早送りマージ
宇宙ステーションは大きくなっており、火星の拠点の開会式の時間です。将来の計画が現実となりつつあるため、future-plans
ブランチを、ローカルシステムのメインブランチにマージできます。
1つのブランチのみ作成し、1つの変更を行ったので、ブランチを早送りする方法を使用してマージします。早送りマージ は 現在のブランチの先端からターゲットブランチに向かって 1 本の直線的なパスのみが通っている場合に適用されます。この場合は、"実際に" ブランチがマージされるわけではなく、単に現在のブランチの先端をターゲットブランチ の先端に移動させることによって (即ち「早送り」によって) 履歴の統合が行われます。これによって実質的に履歴の結合が行われ、ターゲットブランチからアクセス可能であったコミットがすべて現在のブランチからアクセスで きるようになります。
このブランチワークフローは、一時的なトピックブランチで変更も小規模な場合に一般的ですが、長期的なフィーチャーでは一般的とはいえません。
早送りマージを完了する手順
- 端末画面で、ローカルリポジトリのトップレベルに移動します。
$ cd ~/repos/bitbucketstationlocations/
- あなたはすべての変更をコミットし、どのブランチをチェックアウトしたかを確認するため、
git status
コマンドを入力します。
$ git status
On branch future-plans
nothing to commit, working directory clean
main
ブランチに切り替えます。
$ git checkout main
Switched to branch 'main'
Your branch is up-to-date with 'origin/main'.
future-plans
ブランチの変更をmain
ブランチにマージします。次のようになります。
$ git merge future-plans
Updating fcbeeb0..e3b7732
Fast-forward
stationlocations | 4 ++++
1 file changed, 4 insertions(+)
- 基本的に、
main
ブランチのポインターを現在のヘッドに移動して、リポジトリは上記の早送りマージのようになります。
-
future-plans
は今後使用する予定はないため、ブランチを削除できます。
$ git branch -d future-plans
Deleted branch future-plans (was e3b7732).
future-plans
を削除すると、commit id を引き続き使用してmain
からブランチにアクセスできます。たとえば、future-plans
から追加した変更を元に戻す場合は、受け取った commit id を使用してブランチに戻ります。
-
git status
と入力してマージの結果を確認します。ローカルリポジトリがリモートリ つ進んでいることを示次のようになります。
$ git status
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
ここまで学習したことは次のとおりです。
- ブランチを作成してチェックアウトしました。
- 新しいブランチで変更を行いました。
- 変更を新しいブランチにコミットしました。
- その変更をメインブランチに統合しました。
- 不要になったブランチを削除しました。
次に、このすべての作業を Bitbucket (リモートリポジトリ) に戻す必要があります。
ステップ 3. 変更を Bitbucket へプッシュ
あなたは、他の人が新しいスペースステーションの場所を見ることができるようにしたいと思っています。そのためには、ローカルリポジトリの現在の状態を Bitbucket にプッシュできます。
この図は、中央リポジトリにはない変更がローカルリポジトリにあり、これらの変更を Bitbucket にプッシュするときに何が起こるかを示しています。
変更をリモートリポジトリへプッシュする方法は次のとおりです。
- 端末ウィンドウのリポジトリ ディレクトリから、
git push origin main
を入力して変更をプッシュします。次のような結果になります。
$ git push origin main
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 401 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git
fcbeeb0..e3b7732 main -> main
-
Bitbucket の 概要 ページをクリックすると、最近のアクティビティ ストリームにプッシュが表示されているのがわかります。
-
コミット をクリックすると、ローカルシステムで行ったコミットが表示されます。変更は、ローカルシステム上にあるため、同じコミット ID を保持します。
また、コミットリストの左の行には、直接のパスがあり、ブランチは表示されません。これは、
future-plans
ブランチがリモートリポジトリで操作されたことがなく、私たちが作成し、コミットした変更のみがあるためです。 -
ブランチをクリックして、ページにブランチのレコードがないことに気付きます。
-
ソースをクリックし、
stationlocations
ファイルをクリックします。ファイルへの最後の変更は、プッシュしたばかりのコミット ID が付いています。 -
ファイル履歴リストをクリックして、このファイルにコミットされた変更を表示します。次の図と類似した内容が表示されます。
完了しました!
学習したすべての Git コマンドを記憶できるか自信がない場合も、問題ありません。必要なときに参照できるよう、基本的な Git コマンドページをブックマークしてください。