スナップショットからプロジェクトのファイル群をワーキングディレクトリーに展開する
「git checkout」コマンドは、「スナップショット」からプロジェクトのファイル群を「ワーキングディレクトリー」に展開するコマンドです。また、「スナップショット」からプロジェクトのファイル群を「ワーキングディレクトリー」に展開することを、「チェックアウト」といいます。
「git checkout」コマンドの機能を大別すると、以下のようになります。
- ローカルブランチをチェックアウトする
- コミットオブジェクトをチェックアウトする
- ローカルブランチを作成し、作成したローカルブランチをチェックアウトする
- スナップショットから、特定のプロジェクトのファイルをワーキングディレクトリーに展開する
- ファイルの差分を作成し、ワーキングディレクトリーのファイルに差分を適用する
クリーンとダーティー
「スナップショット」から展開したプロジェクトのファイル群は、ユーザーがファイルを編集しない限り、「スナップショット」に格納されているファイルの内容と同じ内容になります。この状態のことを、クリーン(Clean)な状態と言います。
一方、ユーザーがファイルを編集し、「スナップショット」に格納されているファイルの内容と異なる状態のことを、ダーティー(Dirty)な状態と言います。
ダーティー(Dirty)な状態でコミットを行うと、「スナップショット」が作成され、編集内容が「スナップショット」に保存されます。
すなわち、クリーン(Clean)な状態になります。
簡潔に言うと、いつでも「スナップショット」から編集後のファイルを取り出せる状態がクリーンな状態です。
チェックアウトはクリーンな状態で行う
基本的に「チェックアウト」はクリーンな状態で行います。これは、「チェックアウト」を行うと編集内容が破棄されてしまうためです。
もし編集内容を破棄しても良い場合は、ダーティーな状態で「チェックアウト」を行うこともできます。
ローカルブランチをチェックアウトするコマンドの説明
「ローカルブランチ」を「チェックアウト」するコマンドの説明です。「チェックアウト」を行うと、「HEAD」はコマンドに指定されたブランチを指すように変更されます。
コマンドのフォーマット
コマンドのフォーマットは以下のようになります。
git checkout <オプション> <ローカルブランチ名>
基本的な使い方は、「ローカルブランチをチェックアウトする」を参考にしてください。
オプション
オプションの一覧です。どのオプションも省略可能です。
出力する情報の抑制(-q, --quiet)
メッセージなど、コマンド実行時に出力する情報を抑制します。強制的にチェックアウトする(-f, --force)
デフォルトでは、「ワーキングディレクトリー」内に、「編集されたファイル」や「ステージされたファイル 」が存在する場合、「チェックアウト」に失敗します。「チェックアウト」をダーティーな状態で行うことはできません。
しかしこのオプションを指定すると、ダーティーな状態でも強制的に「チェックアウト」を実行します。
このオプションの使い方は、以下を参考にしてください。
ワーキングディレクトリーとローカルブランチをマージする(-m, --merge)
「ワーキングディレクトリー」内の変更されたファイルと、ローカルブランチ名で指定した「ローカルブランチ」をマージします。マージは3ウェイマージで行われます。
このオプションの使い方は、「ローカルブランチをチェックアウトし、ワーキングディレクトリーとローカルブランチをマージする」を参考にしてください。
ローカルブランチ名
「チェックアウト」するローカルブランチ名を指定します。このオプションは省略できます。
このオプションを省略すると、「HEAD」が指すブランチが指定されたものとして扱われます。
ブランチの情報を表示する
このオプション含め、すべてのオプションを省略すると、「HEAD」が指すブランチとそのブランチがトラッキングしているブランチのコミット回数の差分を表示します。また、「ワーキングディレクトリー」で変更されたファイルの一覧が表示されます。
この場合、「チェックアウト」は行われません。