ローカルブランチを強制的にチェックアウトする
「ワーキングディレクトリー」内に、「編集されたファイル」や「ステージされたファイル 」が存在する状況で「チェックアウト」を行おうとすると、以下のように「チェックアウト」に失敗します。「ワーキングディレクトリー」がダーティーな状態で「チェックアウト」を行うことはできません。
「チェックアウト」は、 「スナップショット」からプロジェクトのファイル群を「ワーキングディレクトリー」に展開する作業なので、そのまま「チェックアウト」を実行してしまうと、ユーザーがファイルに対して行った編集が全て破棄されてしまいます。
もし「ワーキングディレクトリー」内で行った編集内容を破棄したくない場合は、コミットを行い「スナップショット」を作成後、「チェックアウト」を実行する必要があります。
しかし、 「ワーキングディレクトリー」内で行った編集内容を破棄しても良い場合は、編集内容を破棄し「チェックアウト」を行うことも可能です。
ここでは例として、編集内容を破棄し、強制的に「チェックアウト」を行います。
1.ブランチの確認
ブランチの一覧を表示すると、以下のようになっています。「master」ローカルブランチと「sub」ローカルブランチがあることが分かります。
また、「*」マークが付いている「sub」ローカルブランチが、現在のブランチであることが分かります。
従って「HEAD」は「sub」ローカルブランチを指しています。
2.subローカルブランチの状態
「sub」ローカルブランチの状態を確認すると、 「ワーキングディレクトリー」内で変更のあったファイルの一覧が表示されます。これらのファイルはコミットされていません。
3.コマンドの実行
コマンドのオプションは、以下のオプションを指定します。ショートオプション | ロングオプション |
---|---|
-f | --force |
「端末」から、以下のコマンドを実行します。
コマンドの詳細は、「ローカルブランチをチェックアウトするコマンドの説明」を参考にしてください。
ポイントは、赤字の箇所です。
git checkout --force master