Git のヘッド分離問題の理解と解決

Git Noheddo Fen Li Wen Tino Li Jieto Jie Jue



Git Bash では、HEAD は開発者が作業するブランチです。 Git Bash のプロフェッショナル ユーザーであれば、切り離された HEAD 状態について聞いたことがあるかもしれません。一部のユーザーは、この状況を実際に憂慮すべきと感じています。これは、HEAD がブランチではなく特定のコミットを指していることを意味しているだけです。

このガイドには、通常の切り離された HEAD 状態の深い理解と、次の内容を含む切り離された HEAD を解決するための解決策に関するコンテンツが含まれています。

Git の通常の HEAD 状態とは何ですか?

Git の通常の HEAD 状態は、HEAD が現在のブランチを指している状態です。ユーザーが異なるブランチ間を切り替えると、HEAD もそのブランチに切り替わります。実際のデモンストレーションについては、次の手順を確認してください。







ステップ 1: ログステータスの表示
Git Bash を開き、プロジェクトのログを表示します。 「gitログ」 指示:



git ログ



現在、HEAD は「」を指しています。 マスター ' 支店。





ステップ 2: ブランチの切り替え
次に、別のローカル ブランチに切り替えて、HEAD ポインターの位置を確認します。たとえば、「」をチェックアウトしています。 特徴 ' 支店:

git チェックアウト 特徴



ブランチは「」に切り替えられました。 特徴 ”。

ステップ 3: ログを確認する
リポジトリのログ ステータスを再度表示し、HEAD 状態を確認して確認します。

git ログ

次の出力によると、HEAD は「feature」ブランチを指しています。

つまり、これは Git Bash の通常の HEAD シナリオです。

分離されたヘッドステートとは何を意味しますか?

上で述べたように、切り離された HEAD 状態は、HEAD がブランチではなくコミットを指しているときに発生します。最新のコミットに切り替えると、HEAD はコミットを指します。これが切り離された HEAD 状態です。より深く理解するには、実践的なマニュアルを読んでください。

ステップ 1: ヘッドのステータスを確認する
まず、Git Bash で次のコマンドを実行して、ログを表示して HEAD 状態を確認します。

git ログ - オンライン

現在、HEAD は「」を指しています。 特徴 ' 支店。

ステップ 2: コミットをチェックアウトする
次のコマンドと SHA ハッシュを使用して、HEAD を最新のコミットに切り替えましょう。

git チェックアウト b8d840c

ブランチではなくコミットに切り替えると、デタッチされた HEAD 状態が表示されることがわかります。

ステップ 3: ヘッドのステータスを再度確認する
ここで、ログを表示して HEAD 状態を確認すると、コミットを指していることがわかります。

git ログ - オンライン

これは Git の切り離された HEAD 状態です。

どのような状況で HEAD 状態が分離されるのでしょうか?

切り離された HEAD 状態が見られる状況は 2 つあります。以下の表を確認してください。

状況 1 ユーザーがブランチではなく SHA ハッシュ コミットに切り替えたとき。
状況 2 ユーザーがリモート ブランチをフェッチする前にリモート ブランチに切り替える場合。

Git で切り離された HEAD の問題を解決するには?

次に、切り離された HEAD の問題を解決する方法を見てみましょう。解決するのは非常に簡単で、新しいブランチを作成し、それに切り替えて、変更をコミットするだけです。実際に表示するには、指定された手順を確認してください。

ステップ 1: 新しいブランチを作成する
まず、新しいブランチを作成します。 「gitブランチ」 指示:

gitブランチ 新しい

ステップ 2: 作成したブランチに切り替える
その後、 「gitスイッチ」 コマンドを実行し、ブランチ名を入力します。

ギット 新しいスイッチ

ステップ 3: 変更をコミットする
適用された変更をコミットし、「」を使用してメッセージを指定します。 メートル ' 鬼ごっこ:

gitコミット -m 「ブランチ切り替え」

ステップ 4: ログを確認する
次に、ログを表示して HEAD のステータスを確認します。

git ログ

これは、切り離された HEAD 状態を解決する方法です。

結論

Git の切り離された HEAD 状態は、HEAD がブランチではなくコミットを指しているときに発生しました。これを解決するには、新しいブランチを作成し、それに切り替えて、変更をコミットします。 Git における切り離された HEAD の問題について詳しく学習しました。