دليل لدرس أساسيات Git المتقدمة: إنشاء الفروع والتنقل بينها، فحص التغييرات بـ git diff و git show، وإدارة التجهيز والتراجع بـ git reset و git restore.
يغطي هذا الدرس العمليات التي تستخدمها بمجرد أن تصبح دورة الكوميت الأساسية طبيعةً ثانية: العمل على الفروع، النظر إلى التغييرات عن قرب، وإدارة أو إلغاء ما هو مجهَّز. تجعل هذه العمليات Git اليومي مثمرًا وآمنًا.
الفروع: git branch و git checkout
git branch feature # إنشاء فرع
git checkout feature # التبديل إليه
git checkout -b feature # إنشاء وتبديل في خطوة واحدة
الفرع خط عمل مستقل. git branch ينشئ واحدًا، و git checkout يبدّل إليه. العمل على فرع يحافظ على استقرار main بينما تجرّب.
إصدارات Git الأحدث تضيف git switch لتغيير الفروع و git switch -c لإنشائها. لا يزال checkout يفعل الاثنين وهو ما تتدرب عليه هنا.
فحص التغييرات: git diff و git show
git diff # تغييرات غير مجهَّزة
git diff --staged # تغييرات مجهَّزة
git show # أحدث كوميت بالتفصيل
يعرض git diff ما غيّرته ولم تجهّزه بعد، و git diff --staged يعرض المجهَّز. يعرض git show محتوى كوميت كاملًا. تجيب هذه الأوامر على سؤال "ما الذي تغيّر بالضبط؟" قبل الكوميت وبعده.
إدارة التجهيز والتراجع: git restore و git reset
git restore index.html # إلغاء تعديلات غير مُكوَّمة لملف
git restore --staged index.html # إخراج ملف من التجهيز (مع الإبقاء على التعديلات)
git reset --soft HEAD~1 # التراجع عن آخر كوميت مع إبقاء التغييرات مجهَّزة
git restore هو الأداة الحديثة المخصّصة لإلغاء التغييرات في ملفات العمل أو إخراجها من التجهيز. git reset يحرّك مؤشر الفرع ويستطيع إخراج من التجهيز أو التراجع عن كوميتات.
git restore <file> يلغي التعديلات غير المُكوَّمة لذلك الملف بشكل دائم. git restore --staged يخرجه من التجهيز فقط مع الإبقاء على تعديلاتك. اعرف أيهما تشغّل قبل أن تشغّله.
دمج كل شيء
سير عمل واقعي: أنشئ فرعًا بـ git checkout -b، أحدِث تغييرات، راجعها بـ git diff، جهّز ثم كوّم، واستخدم git restore أو git reset لإصلاح الأخطاء. هذه هي صندوق الأدوات اليومي الذي تبني عليه دروس استكشاف الأخطاء وإصلاحها.