robotsnoindex
robotsnoindex
robotsnoindex


宇宙ステーションの管理者になるには、特定の責任が伴います。太陽系の新しい場所のマップを作成する場合など、情報をロックダウンする必要があることがあります。ブランチについて学習することで、ファイルをメイン ソースと独立して更新し、準備が整った場合にのみ変更を共有できるようになります。

ブランチは、リポジトリでの開発作業の独立したラインを表します。新しい作業ディレクトリ、ステージング領域、およびプロジェクト履歴のようなものと考えることができます。新しいブランチを作成する前は、自動的にメイン ブランチ (  master と呼ばれる) から開始します。視覚的な例として、この図は、  master  ブランチとバグ修正が更新された他のブランチを示しています。



ブランチは、チームで作業する際に最も力を発揮します。プロジェクトの自分のブランチの自分の担当部分で作業し、必要に応じて   master   から更新をプルして、準備が整ったらすべての作業を   master   にマージすることができます。  アトラシアンのドキュメントでは、  ブランチを使用する理由について詳細に説明しています。

ステップ 1: ブランチの作成と変更

宇宙ステーションの今後の計画を追加するための、コミット準備中のブランチを作成します。計画を全員に伝える準備が整ったら、Bitbucket リポジトリに変更をマージし、不要になったブランチは削除できます。

ブランチはコミットに対するポインターであることを理解しておくことが重要です。ブランチを作成する際、Git は新しいポインターを作成します。一連の新しいファイルやフォルダーを作成するわけではありません。 手順を開始する前のリポジトリは、次のようになります。  


ブランチを作成するには、以下を実行します。

  1. ターミナル ウィンドウを開き、次のコマンドを使用してローカル リポジトリの最上位に移動します。 

    macOS / Linux / Git Bash

    $ cd ~/repos/bitbucketstationlocations/

    Windows コマンド プロンプト

    $ cd repos\bitbucketstationlocations\
  2. ターミナル ウィンドウからブランチを作成します。

    $ git branch future-plans

    このコマンドはブランチを作成しますが、そのブランチに移動はしません。したがって、リポジトリは次のようになります。

    ここではリポジトリの履歴には何の変更も加えられません。新たに作られるのは現在のブランチに対するポインターのみです。 新しいブランチでの作業を開始するには、使用したいブランチをチェック アウトする必要があります。


  3. 先ほど作成した新しいブランチをチェックアウトして、使い始めます。

    $ git checkout future-plans
    Switched to branch 'future-plans'

    この git checkout コマンドは連携して git branch 新しい作業を行うためにブランチを作成するため、git branch を使用して新しいブランチを作成するたびに git checkout を使用してそれをチェック アウトします。新しいブランチをチェック アウトすると、Git ワークフローは次のようになります。

  4. ローカル システムで bitbucketstationlocations フォルダを検索して開きます。新しいブランチを作成したことにより、ディレクトリに新しいファイルやフォルダは追加されていないことがわかります。
  5. テキスト エディタで stationlocations ファイルを開きます。
  6. 別のステーションの場所を追加してファイルを変更します。

    <p>Bitbucket には次の宇宙ステーションがあります:</p>
    <p>
        <b>地球の月</b><br>
        本部
    </p>
    <p>
        <b>Mars</b><br>
        レクリエーション部門
    </p>
  7. ファイルを保存して閉じます。
  8. ターミナル ウィンドウに「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を入力していた場合、master ブランチは 1 つしか持つことができないため、この行は On branch master でした。変更をステージングまたはコミットする前に必ずこの行を確認し、変更を追加するブランチがチェック アウトしたものであるかどうかを確認するようにします。


  9. ファイルをステージングします。

    $ git add stationlocations
  10. 以下のように、ターミナル ウィンドウに「git commit」コマンドを入力します。

    $ git commit -m 'making a change in a branch'
    [future-plans e3b7732] making a change in a branch
     1 file changed, 4 insertions(+)

    このコミットで、リポジトリは次のようになります。


    ここで、master ブランチに加えた変更をマージします。

ステップ 2. ブランチのマージ: 早送りマージ

宇宙ステーションは成長を続けており、火星の拠点で開会式を行うときがやってきました。今後の計画が現実のものとなったため、future-plans ブランチをローカル システムの main ブランチにマージできます。

1 つのブランチのみを作成して 1 つの変更を加えたため、fast-forward ブランチ方式でマージを行います。  早送りマージ  を行えます。 ターゲット ブランチに対して現在のブランチの先頭が線形のパスになっているためです。ブランチを実際にマージする代わりに、Git は現在のブランチの先頭をターゲット ブランチの先頭に移動して (fast-foward (早送り) する)、履歴を統合します。これによって、ターゲット ブランチからアクセス可能なすべてのコミットが現在のブランチで利用できるようになるため、履歴を効果的に組み合わせることができます。

 

このブランチ ワークフローは小さな変更を伴う短期間のトピック ブランチに共通しており、長期間実行されているような機能では一般的ではありません。

fast-forward マージを完了させるには、次の手順を行います。

  1. ターミナル ウィンドウを開き、ローカル リポジトリの最上位に進みます。

    macOS / Linux / Git Bash

    $ cd ~/repos/bitbucketstationlocations/

    Windows コマンド プロンプト

    $ cd repos\bitbucketstationlocations\
  2. git status」コマンドを入力して、すべての変更がコミットされたことと、チェック アウトしたブランチを確認します。

    $ git status
    On branch future-plans
    nothing to commit, working directory clean
  3. master ブランチに切り替えます。

    $ git checkout master
    Switched to branch 'master'
    Your branch is up-to-date with 'origin/master'.
  4. M future-plans ブランチの変更を master ブランチにマージします。  これは、次のようなイメージです。

    $ git merge future-plans
    Updating fcbeeb0..e3b7732
    Fast-forward
     stationlocations | 4 ++++
     1 file changed, 4 insertions(+)

    これで、master ブランチのポインタを現在の先頭に移動させました。リポジトリは次のようになります。

  5. future-plans を今後使用する予定はないため、ブランチを削除できます。

    $ git branch -d future-plans
    Deleted branch future-plans (was e3b7732).

    future-plans を削除しても、コミット ID を使用して master からブランチに引き続きアクセスできます。たとえば、future-plans に追加した変更を元に戻したい場合は、受け取ったばかりのコミット ID を使用してそのブランチに戻ります。


  6. git status」と入力してマージの結果を確認します。リモート リポジトリの 1 つ先にローカル リポジトリが表示されます。
    次のようになります。

    $ git status
    On branch master
    Your branch is ahead of 'origin/master' by 1 commit.
      (use "git push" to publish your local commits)
    nothing to commit, working directory clean

ここまでの操作で、次の内容を実行しました。

  • ブランチの作成とチェックアウト
  • 新しいブランチへの変更
  • 新しいブランチへの変更のコミット
  • メイン ブランチへの変更の統合
  • 不要になったブランチの削除

次に、この作業すべてを、リモート リポジトリである Bitbucket にプッシュする必要があります。

ステップ 3. 変更を Bitbucket へプッシュ

自分以外の全員が新しい宇宙ステーションの場所を見られるようにしたい場合、ローカル リポジトリの現在の状態を Bitbucket にプッシュすることで実現できます。

この図は、中央リポジトリにはない変更がローカルリポジトリにあり、これらの変更を Bitbucket にプッシュするときに何が起こるかを示しています。 .

  リモート リポジトリに変更をプッシュする方法は次のとおりです。

  1. ターミナル ウィンドウのリポジトリ ディレクトリで、  git push origin master」と入力して変更をプッシュします。次のような結果になります。

    $ git push origin master
    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 master -> master
  2. Bitbucket リポジトリの概要ページをクリックすると、最近のアクティビティストリームにプッシュが表示されます。

  3. コミット をクリックすると、ローカルシステムで行ったコミットが表示されます。変更は、ローカルシステム上にあるため、同じコミット ID を保持します。

    また、コミット リストの左の行には、直接のパスがあり、ブランチは表示されません。これは、future-plans ブランチがリモート リポジトリで操作されたことがなく、私たちが作成し、コミットした変更のみがあるためです。
  4. ブランチ をクリックすると、ページのいずれのブランチにもレコードがないことがわかります。
  5. [ソース] をクリックしてから、stationlocations ファイルをクリックします。
    ファイルに対する最後の変更に、先ほどプッシュしたコミット ID があることがわかります。
  6. このファイルでコミットされた変更を確認するには、ファイル履歴リストをクリックします。次の図のようになります。

完了です!

ここで少し休憩を取りましょう。次に、チームメイトのリポジトリの更新」をご覧ください。

学習したすべての Git コマンドを覚える自信がなくても、問題はありません。「Git のコマンド」ページをブックマークしておくことをおすすめします。