Gitチェックアウト

このページは、git checkoutコマンドの調査です。使用例とエッジケースについて説明します。 Gitの用語では、「チェックアウト」とは、ターゲットエンティティの異なるバージョンを切り替える行為です。 git checkoutコマンドは、ファイル、コミット、ブランチの3つの異なるエンティティに対して機能します。 「チェックアウト」の定義に加えて、「チェックアウト」というフレーズは、git checkoutコマンドを実行する行為を意味するために一般的に使用されます。 「変更の取り消し」トピックでは、git checkoutを使用して古いコミットを表示する方法を説明しました。このドキュメントの大部分の焦点は、ブランチのチェックアウト操作です。

ブランチのチェックアウトは、選択したブランチ/リビジョンに一致するように作業ディレクトリが更新されるという点で、古いコミットとファイルのチェックアウトに似ています。ただし、新しい変更はプロジェクト履歴に保存されます。つまり、読み取り専用の操作ではありません。

ブランチのチェックアウト

git checkoutコマンドを使用すると、git branchによって作成されたブランチ間を移動できます。ブランチをチェックアウトすると、作業ディレクトリ内のファイルがそのブランチに保存されているバージョンと一致するように更新され、Gitにそのブランチでのすべての新しいコミットを記録するように指示されます。作業している開発ラインを選択する方法と考えてください。

新機能ごとに専用のブランチを持つことは、従来のSVNワークフローからの劇的な変化です。これにより、既存の機能を破壊することを恐れずに、途方もなく簡単に新しい実験を試すことができ、関連のない多くの機能を同時に操作することができます。さらに、ブランチはいくつかの共同ワークフローも容易にします。

git checkoutコマンドはgit cloneと混同されることがあります。 2つのコマンドの違いは、クローンがリモートリポジトリからコードをフェッチするように機能するか、チェックアウトがローカルシステムにすでに存在するコードのバージョンを切り替えるように機能することです。

使用法:既存のブランチ

作業中のリポジトリに既存のブランチが含まれていると仮定すると、git checkoutを使用してこれらのブランチを切り替えることができます。使用可能なブランチと現在のブランチ名を確認するには、 git branchを実行します。

 

上記の例は、

コマンドを実行し、指定したブランチ(この場合はfeature_inprogress_branch)に切り替えます。

新しいブランチ

Git checkoutgit branchと連携して機能します。git branchコマンドは次のことができます。新しいブランチを作成するために使用されます。新しい機能を開始する場合は、 git branch new_branchを使用します。作成したら、git checkout new_branchを使用してそのブランチに切り替えることができます。さらに、git checkoutコマンドは-b引数を受け入れます。この引数は、新しいブランチを作成してすぐに切り替える便利なメソッドとして機能します。 git checkoutを使用して機能を切り替えることで、1つのリポジトリで複数の機能を操作できます。

上記の例の作成とチェックアウトを同時に行います。 -bオプションは、git checkout を実行する前にgit branch を実行するようにGitに指示する便利なフラグです。

デフォルトではgit checkout -bnew-branchをベースにします現在のHEAD。オプションの追加の分岐パラメータをgit checkoutに渡すことができます。上記の例では、が渡され、existing-branchではなくnew-branchがベースになります。現在のHEAD

ブランチの切り替え

ブランチの切り替えは簡単な操作です。以下を実行すると、HEAD.

<の先端を指します。 p> Gitは、reflogでチェックアウト操作の履歴を追跡します。 git reflogを実行して履歴を表示できます。

リモートブランチのGitチェックアウト

チームと共同作業する場合、リモートを利用するのが一般的です。リポジトリ。これらのリポジトリは、ホストされて共有されている場合もあれば、別の同僚のローカルコピーである場合もあります。各リモートリポジトリには、独自のブランチセットが含まれます。リモートブランチをチェックアウトするには、最初にブランチのコンテンツをフェッチする必要があります。

Gitの最新バージョンでは、ローカルブランチのようにリモートブランチをチェックアウトできます。

古いバージョンのGitでは、remoteに基づいて新しいブランチを作成する必要があります。

さらに、新しいローカルブランチをチェックアウトして、最後にコミットしたリモートブランチにリセットできます。

 

デタッチされたHEADS

ブランチでのgit checkoutの3つの主な使用法を確認したので、

状態。HEADはGitが現在のスナップショットを参照する方法であることを忘れないでください。内部的には、git checkoutコマンドは、指定されたブランチまたはコミットのいずれかを指すようにHEADを更新するだけです。ブランチを指す場合、Gitは文句を言いませんが、コミットをチェックアウトすると、 "detached HEAD”状態に切り替わります。

これは、実行しているすべてがプロジェクトの他の開発から「切り離されている」ことを通知する警告です。切り離されたHEAD状態で機能の開発を開始した場合、tに戻ることができるブランチはありません。 oそれ。必然的に別のブランチをチェックアウトする場合(たとえば、機能をマージする場合)、機能を参照する方法はありません。

要点は、開発は常にブランチで行う必要があります。切り離されたHEADでは行わないでください。これにより、新しいコミットへの参照が常にあるようになります。ただし、古いコミットを見ているだけの場合は、分離されたHEAD状態にあるかどうかは実際には問題ではありません。

まとめ

このページでは、ブランチを変更する際のgit checkoutコマンドの使用法に焦点を当てました。要約すると、git checkoutをブランチで使用すると、HEAD参照のターゲットが変更されます。ブランチの作成、ブランチの切り替え、リモートブランチのチェックアウトに使用できます。 git checkoutコマンドは、標準のGit操作に不可欠なツールです。 git mergeに相当します。 git checkoutおよびgit mergeコマンドは、git workflowsを有効にするための重要なツールです。

Write a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です