إعادة تعيين Branch
جزء من قسم التحكم في الإصدارات في رحلة Terminal على Coddy — الدرس 44 من 58.
يقوم git reset بنقل مؤشر الفرع الحالي إلى التزام (commit) مختلف. الاستخدام الأكثر شيوعاً هو التراجع عن الالتزامات الأخيرة التي لم تشاركها بعد.
git reset --hard HEAD~1ينقل هذا main للخلف بمقدار التزام (commit) واحد ويقوم بالكتابة فوق دليل العمل (working directory) للمطابقة. الالتزام الذي تخطيته لم يعد من الممكن الوصول إليه من فرعك (يحتفظ Git به لفترة من الوقت في حال غيرت رأيك، ولكن توقع اختفاءه).
هناك ثلاثة أنواع من إعادة الضبط:
--soft: تحريك مؤشر الفرع؛ الاحتفاظ بالتغييرات المدرجة--mixed(افتراضي): تحريك المؤشر؛ إلغاء الإدراج ولكن الاحتفاظ بملفات العمل--hard: تحريك المؤشر؛ التخلص من تغييرات ملفات العمل أيضاً
--hard هو الشكل الأكثر تدميراً. إنه رائع لتنظيف الأخطاء المحلية، ولكن لا تستخدمه أبداً على الالتزامات (commits) التي قام أشخاص آخرون بسحبها بالفعل.
التحدي
متوسطيحتوي المجلد على doc.md. قم بتهيئة المستودع وإنشاء ثلاث عمليات إيداع بالترتيب:
- أضف
doc.mdمع رسالةAdd doc. - قم بإلحاق
secondبـdoc.md، وقم بالإيداع مع رسالةSecond draft. - قم بإلحاق
thirdبـdoc.md، وقم بالإيداع مع رسالةThird draft.
قم بإجراء إعادة تعيين قوية (Hard-reset) للفرع للعودة إلى أول عملية إيداع باستخدام HEAD~2. اطبع محتويات doc.md.
ورقة مرجعية
يقوم git reset بنقل مؤشر الفرع الحالي إلى التزام (commit) مختلف. هناك ثلاثة أنواع:
--soft: نقل المؤشر؛ الاحتفاظ بالتغييرات المدرجة (staged)--mixed(افتراضي): نقل المؤشر؛ إلغاء إدراج التغييرات ولكن الاحتفاظ بملفات العمل--hard: نقل المؤشر؛ تجاهل تغييرات ملفات العمل
git reset --hard HEAD~1 # التراجع عن آخر التزام، وتجاهل التغييرات
git reset --hard HEAD~2 # التراجع عن آخر التزامينتحذير: لا تستخدم --hard أبدًا على التزامات قام الآخرون بسحبها (pulled) بالفعل.
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التحكم في الإصدارات
7التفرع (Branching)
ما هو الفرع (Branch)؟إنشاء فرعالتبديل بين الفروعإجراء Commit على فرعحذف فرعملخص - ممارسة التفرع10المستودعات البعيدة (Remotes)
ما هو الـ Remote؟إضافة Remoteعمليات Push و Pull و Cloneملخص - إعداد الـ Remote8الدمج
ما هو الدمجدمج التقديم السريع (Fast-Forward)الدمج ثلاثي الاتجاهات (Three-Way)تعارضات الدمجحل التعارضملخص - محترف الدمج11مشروع Feature Branch
نظرة عامة على المشروعتهيئة Main9التراجع عن التغييرات
تجاهل التغييرات غير المدرجةإلغاء إدراج ملفتعديل آخر Commitالتراجع عن Commitإعادة تعيين Branchملخص - آلة الزمن