شرح صفوف ومحتوى الفقرة
في الوضع الطبيعي يشير HEAD إلى اسم فرع، ويشير الفرع إلى الالتزام. أما إذا انتقلت مباشرة إلى بصمة التزام معين عبر git checkout a1b2c3d أو git switch --detach HEAD~1، يدخل المستودع في حالة المؤشر المنفصل (Detached HEAD)، حيث يحفظ الملف .git/HEAD بصمة الالتزام مباشرة دون فرع وسيط.
تُعد معاينة الكود القديم في هذه الحالة آمنة تماماً، لكن الخطر يقع إذا أنشأت التزامات جديدة وأنت في وضع الانفصال ثم عدت إلى main؛ إذ تصبح تلك الالتزامات يتيمة بلا فرع يشير إليها. ولحفظها بأمان، أنشئ فرعاً فورياً في موقعك عبر git switch -c <new-branch>.
Shell
# Inspect an older commit in detached HEAD mode
git switch --detach HEAD~1
# Rescue detached work by attaching a new branch
git switch -c rescue-old-state