تشرح هذه المقالة باختصار الفرق بين git reset - hard و - soft و - mixed.
ما هو الفرق بين git reset –mixed و –soft و –hard؟
يوفر Git خيارات إعادة تعيين متعددة. على أساس كيفية تعاملهم مع الالتزامات ، تختلف جميع الخيارات المتاحة عن بعضها البعض. لقد قاموا جميعًا بتعديل سجل Git ونقلوا الرأس للخلف. علاوة على ذلك ، فهم يتعاملون مع التغييرات بشكل مختلف ، مثل:
- ال ' -لين 'الخيار المستخدم مع' إعادة تعيين بوابة $ 'للاحتفاظ بالملفات وإرجاع تغييرات الالتزام إلى فهرس Git المرحلي.
- ' إعادة تعيين $ git - مختلط 'للتراجع عن تغييرات الالتزام وإزالة الملف من الفهرس المرحلي دون حذفه من دليل العمل.
- ال ' -الصعب 'الخيار مع' إعادة تعيين بوابة $ 'يتم استخدام الأمر' لحذف جميع التغييرات وإزالتها من دليل العمل المحلي.
لنأخذ مثالاً لنرى كيف أن ' إعادة تعيين بوابة $ يعمل الأمر مع خيارات مختلفة!
الخطوة 1: اذهب إلى مستودع Git المطلوب
أولاً ، انتقل إلى مستودع Git الذي تريده من خلال استخدام ' قرص مضغوط ' يأمر:
$ قرص مضغوط 'C: \ Go \ t is_repo '
الخطوة الثانية: إنشاء ملف
الآن ، قم بتنفيذ الأمر الموضح أدناه لإنشاء ملف:
$ لمس. اتصال. صلة File4.txt
الخطوة 3: إضافة ملف إلى فهرس التدريج
استخدم ال ' بوابة إضافة ”لإضافة الملف الذي تم إنشاؤه حديثًا إلى الفهرس المرحلي:
$ بوابة إضافة File4.txt
الخطوة 4: إجراء التغييرات
بعد ذلك ، أضف جميع التغييرات إلى مستودع العمل عن طريق تنفيذ ' بوابة الالتزام ' يأمر:
$ بوابة الالتزام م 'تمت إضافة ملف 4'
الخطوة 5: تحقق من سجل Git
بعد ذلك ، تحقق من محفوظات سجل Git لعرض أحدث الالتزامات التي تمت إضافتها:
$ سجل بوابةفي الإخراج أدناه ، يمكن ملاحظة أنه يتم عرض جميع الالتزامات المضافة الأخيرة ، و ' رأس 'يشير إلى الالتزام الأخير:
ملحوظة: للتحقق من وضع التأشير الحالي لـ HEAD بطريقة أفضل ، قم بتنفيذ ' سجل بوابة 'الأمر مع' -خط واحد ' علَم:
$ سجل بوابة --عبر الانترنتيُظهر المخرجات أدناه قائمة تجزئة SHA الالتزام برسائل التنفيذ:
الخطوة 6: استخدم الأمر git reset –soft Command
لعودة التغييرات المضافة من مستودع Git إلى الفهرس المرحلي ، استخدم ' إعادة تعيين بوابة 'الأمر جنبًا إلى جنب مع' - لين '، وحدد موضع HEAD المطلوب حيث يكون مطلوبًا لتحريك المؤشر:
$ إعادة تعيين بوابة --لين رأس ~ 1
الخطوة 7: تحقق من حالة Git
الآن ، تحقق من موضع الرجوع لـ HEAD ، تحقق من حالة مستودع Git:
$ حالة بوابةيمكن ملاحظة أن ' إعادة تعيين بوابة - لينة 'قام الأمر بإرجاع تغييرات الالتزام إلى فهرس Git المرحلي. وعلاوة على ذلك، فإن ' File4.txt ”موجود الآن في فهرس Git المرحلي ويلزم الالتزام به:
الخطوة 8: تحقق من سجل Git
لعرض الوضع الحالي لـ HEAD ، قم بتشغيل الأمر المحدد جنبًا إلى جنب مع ' -خط واحد ' اختيار:
$ سجل بوابة --عبر الانترنتهنا ، يشير HEAD إلى ' File3 ' يقترف:
الخطوة 9: استخدم الأمر git reset - Mixed Command
للتراجع عن التغييرات التي تم الالتزام بها وإزالة الملفات من منطقة التدريج دون حذفها من دليل العمل ، قم بتنفيذ ' إعادة تعيين $ git - مختلط 'مع موضع HEAD المطلوب للالتزام:
$ إعادة تعيين بوابة --مختلط رأس ~ 1
الخطوة 10: تحقق من حالة Git
اعرض التغييرات المضافة حديثًا عن طريق التحقق من حالة مستودع Git:
$ حالة بوابةيمكن ملاحظة أنه تتم إزالة تغييرات الالتزام المحددة من منطقة التدريج. ومع ذلك ، يتم وضعهم في منطقة العمل:
الخطوة 11: تحقق من سجل Git
تحقق من سجل السجل المرجعي لمستودع Git مع تجزئة SHA:
$ سجل بوابة --عبر الانترنت
الخطوة 12: استخدم الأمر git reset - Hard Command
لإزالة التغييرات المضافة من دليل العمل المحلي Git ، قم بتنفيذ ' إعادة تعيين git $ - صعب ' يأمر:
$ إعادة تعيين بوابة --الصعب رأس ~ 1
الخطوة 13: تحقق من 'مؤشر الرأس المعكوس'
للتحقق من مؤشر HEAD ، ارجع إلى الموضع المحدد ، وقم بتشغيل ' سجل بوابة ' يأمر:
$ سجل بوابة --عبر الانترنتيظهر الناتج أدناه أن HEAD يشير إلى ' تمت إضافة ملف 1 ' يقترف:
الخطوة 14: تحقق من حالة Git
لعرض التغييرات المضافة ، تحقق من حالة Git:
$ حالة بوابةيمكن ملاحظة أنه ليس لدينا أي مسار أو تغييرات معلقة لـ ' File2.txt ' ملف. لذلك ، تمت إزالة File2.txt بالكامل:
الخطوة 15: تحقق من قائمة محتويات المستودع
للتحقق من قائمة محتويات مستودع التخزين ، قم بتشغيل ' ls ' يأمر:
$ lsكما ترى ، فإن ' File2.txt 'الملف غير موجود في الدليل الحالي:
لقد أوضحنا الفرق بين خيارات git-mixed و -soft و- hard.
استنتاج
ال ' إعادة تعيين بوابة 'لإعادة تعيين التغييرات وتعديل محفوظات مستودع Git وإصلاح الأخطاء. ال ' إعادة تعيين بوابة - لينة 'يحتفظ الأمر بالملفات ويعيد تغييرات الالتزام إلى منطقة التدريج Git. في المقابل ، فإن ' إعادة تعيين بوابة - مختلط 'التراجع عن تغييرات الالتزام وإزالة الملف من الفهرس المرحلي دون حذفه من دليل العمل. لحذف جميع التغييرات وإزالتها من منطقة عمل Git ، فإن ' إعادة تعيين بوابة - بجد يمكن استخدام الأمر. أوضحت هذه المقالة الفرق بين git reset - mixed و – soft و –hard.