ما هو الفرق بين git reset –mixed و –soft و –hard؟

Ma Hw Alfrq Byn Git Reset Mixed W Soft W Hard



في Git ، يرتبط كل التزام بالالتزام السابق ، ويشير HEAD إلى أحدث التزام في فرع العمل. يتم تخزين سجل الالتزام كشجرة من الالتزامات. ومع ذلك ، يحتاج المطورون في بعض الأحيان إلى تعديل محفوظات الالتزام. لهذا الغرض ، فإن ' إعادة تعيين بوابة $ 'الأمر' لتعديل محفوظات مستودع Git وإصلاح الأخطاء التي تم ارتكابها.

تشرح هذه المقالة باختصار الفرق بين 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.