Git ブランチがリモートブランチを追跡しているかどうかを確認する方法

GitGitBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、ローカルの Git ブランチがリモートブランチを追跡しているかどうかを確認する方法を学びます。主に 2 つの方法を探っていきます。1 つは git branch -vv コマンドを使用して追跡情報をすぐに確認する方法で、もう 1 つは git config コマンドを使用して上流の設定を検証する方法です。

実践的な例を通じて、これらのコマンドの出力をどのように解釈し、ローカルブランチが接続されているリモートブランチ(ある場合)を特定するかを理解します。また、非追跡ブランチの概念についても簡単に触れます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/SetupandConfigGroup -.-> git/config("Set Configurations") git/BranchManagementGroup -.-> git/branch("Handle Branches") subgraph Lab Skills git/config -.-> lab-560053{{"Git ブランチがリモートブランチを追跡しているかどうかを確認する方法"}} git/branch -.-> lab-560053{{"Git ブランチがリモートブランチを追跡しているかどうかを確認する方法"}} end

git branch -vv を実行して追跡状態を確認する

このステップでは、git branch -vv コマンドを使用してローカルブランチの追跡状態を確認する方法を学びます。このコマンドは、ローカルブランチが接続されているリモートブランチ(ある場合)を確認するのに非常に便利です。

まず、プロジェクトディレクトリにいることを確認しましょう。ターミナルを開き、my-time-machine ディレクトリに移動します。

cd ~/project/my-time-machine

次に、git branch -vv コマンドを実行します。

git branch -vv

以下のような出力が表示されるはずです。

* master a1b2c3d [origin/master] Send a message to the future

この出力を分解してみましょう。

  • * master:アスタリスク (*) は、master が現在のアクティブなブランチであることを示しています。
  • a1b2c3d:これは、このブランチの最新のコミットハッシュの短縮版です。
  • [origin/master]:この部分は、ローカルの master ブランチが origin という名前のリモートリポジトリの master ブランチを追跡していることを示しています。まだリモートを追加していませんが、Git は潜在的な追跡情報を表示しています。
  • Send a message to the future:これは、このブランチの最新のコミットのコミットメッセージです。

ブランチの追跡を理解することは、特に他の人と共同作業を始めたり、GitHub のようなプラットフォームにコードをプッシュするときに重要です。これにより、ローカルブランチがリモートバージョンと最新の状態であるかどうか、および変更をプッシュしたときに変更がどこに行くかを知ることができます。

次のステップでは、ローカルブランチが追跡するリモートブランチである上流ブランチを設定して検証する方法を探っていきます。

git config を使用して上流ブランチを検証する

前のステップで、git branch -vv[origin/master] を表示することを確認しました。これは、ローカルの master ブランチが origin という名前のリモートの master ブランチを追跡するように設定されていることを示しています。まだリモートを追加していませんが、Git にはこの追跡関係を示唆するデフォルト設定があります。

この設定を git config コマンドを使用して検証することができます。このコマンドを使用すると、Git の設定を表示および変更することができます。

まだ ~/project/my-time-machine ディレクトリにいることを確認してください。

では、master ブランチのリモート設定を確認しましょう。

git config branch.master.remote

このコマンドは、master ブランチの remote 設定の値を Git に具体的に問い合わせます。

以下の出力が表示されるはずです。

origin

これにより、master ブランチが origin をリモートとして使用するように設定されていることが確認されます。

次に、ローカルの master ブランチが追跡するリモートブランチ名の設定を確認しましょう。

git config branch.master.merge

このコマンドは、master ブランチの merge 設定の値を Git に問い合わせます。この設定は、ローカルブランチにマージするリモートブランチを指定します。

以下の出力が表示されるはずです。

refs/heads/master

これにより、master ブランチがリモートの master ブランチを追跡するように設定されていることが確認されます。refs/heads/mastermaster ブランチの完全な参照名です。

git config を使用することは、Git リポジトリの詳細な設定を理解し管理する強力な方法です。これには、ローカルブランチがリモートリポジトリとどのように相互作用するかも含まれます。

非追跡ブランチのテスト

前のステップで、master ブランチがリモートブランチを追跡するように設定されている方法を見ました。では、リモートブランチを追跡しない新しいローカルブランチを作成し、git branch -vv がその状態をどのように報告するかを見てみましょう。

まだ ~/project/my-time-machine ディレクトリにいることを確認してください。

まず、experiment という名前の新しいブランチを作成しましょう。

git branch experiment

このコマンドは experiment という名前の新しいブランチを作成しますが、そのブランチに切り替えません。

次に、すべてのローカルブランチの状態を確認するために、再度 git branch -vv を実行しましょう。

git branch -vv

以下のような出力が表示されるはずです。

* master    a1b2c3d [origin/master] Send a message to the future
  experiment a1b2c3d Send a message to the future

experiment ブランチの出力と master ブランチの出力の違いに注目してください。experiment ブランチのコミットハッシュの後に [origin/...] が表示されていません。これは、experiment ブランチが現在リモートブランチを追跡していないローカルブランチであることを示しています。

これは、新しい機能を開発したり実験を行ったりするためにローカルで新しいブランチを作成し、リモートリポジトリで他の人と共有する前の一般的なシナリオです。

git branch --set-upstream-to=<remote>/<remote-branch> <local-branch> を使用して、ローカルブランチに明示的に上流ブランチを設定することができます。ただし、現時点では、すべてのローカルブランチが自動的にリモートブランチを追跡するわけではないことを理解することが重要です。

これで、ブランチの追跡状態を確認する探索は終了です。git branch -vvgit config を使用して、ローカルブランチがリモートとどのように相互作用するように設定されているかを理解する方法を学びました。

まとめ

この実験では、Git ブランチがリモートブランチを追跡しているかどうかを確認する方法を学びました。git branch -vv コマンドを使用して、ローカルブランチの追跡状態を確認し、追跡されているリモートブランチとリポジトリを特定しました。

また、git config コマンドを使用してブランチの上流設定を検証する方法を調べ、ローカルブランチが追跡するように設定されているリモートブランチを確認しました。最後に、非追跡ブランチの動作をテストし、明示的な上流設定がないブランチを Git がどのように扱うかを理解しました。