كيفية التراجع عن أحدث الالتزامات (Commits) المحلية في Git

كيفية التراجع عن أحدث الالتزامات (Commits) المحلية في Git

في أثناء العمل على المشاريع باستخدام نظام التحكم في الإصدارات Git، قد يصادفك موقف تحتاج فيه إلى التراجع عن أحدث commit قمت به محليًا قبل دفعه (Push) إلى المستودع البعيد. يقدم Git أدوات متعددة لإدارة هذه الحالات حسب طبيعة التعديلات التي ترغب بالاحتفاظ بها أو حذفها.

في هذا الدليل، سنشرح طرق التراجع عن أحدث الالتزامات المحلية في Git باستخدام أوامر git reset و git revert مع توضيح الفرق بينهما.

التراجع عن أحدث commit مع الاحتفاظ بالتغييرات في الملفات

إذا أردت التراجع عن أحدث commit مع بقاء التعديلات ضمن منطقة العمل (Working Directory)، يمكنك استخدام الأمر:

git reset --soft HEAD~1

هذا الأمر يقوم بإلغاء أحدث commit مع إعادة التغييرات إلى منطقة الإعداد (Staging Area)، مما يتيح لك تعديلها أو إعادة الالتزام بها.

التراجع مع الاحتفاظ بالتعديلات في الملفات دون إضافتها لمنطقة الإعداد

في حال رغبت بإزالة commit مع ترك التعديلات في الملفات فقط (بدون وجودها في منطقة الإعداد)، يمكنك تنفيذ:

git reset --mixed HEAD~1

هذا الخيار مناسب إذا كنت تريد إعادة ترتيب أو تعديل التعديلات قبل إضافتها مرة أخرى إلى staging area.

التراجع مع حذف التغييرات نهائيًا

إذا كنت بحاجة إلى التراجع عن commit وأيضًا حذف التعديلات المصاحبة له بشكل نهائي:

git reset --hard HEAD~1

تنبيه: هذا الأمر سيحذف التعديلات من منطقة العمل ولن تتمكن من استرجاعها بسهولة.

الفرق بين git reset و git revert

  • git reset: يُستخدم للتراجع عن commit محليًا من خلال تعديل سجل الإصدارات وإرجاع الملفات إلى حالة سابقة. قد يؤدي ذلك إلى فقدان التعديلات في بعض الحالات.

  • git revert: يُستخدم لعكس تأثير commit محدد عبر إنشاء commit جديد يعاكس التغييرات، وهو الخيار الأفضل عند العمل ضمن فرق للحفاظ على سجل العمل بشكل آمن ومرتب.

مثال على أمر git revert:

git revert <commit_hash>

خلاصة

يوفر Git أدوات مرنة لإدارة الالتزامات المحلية والتحكم في سجل المشروع. يمكنك اختيار الطريقة الأنسب حسب حالتك:

  • git reset --soft: لإلغاء commit مع بقاء التغييرات في منطقة الإعداد.

  • git reset --mixed: لإلغاء commit مع إبقاء التعديلات في الملفات فقط.

  • git reset --hard: لإلغاء commit وحذف التعديلات نهائيًا.

  • git revert: لعكس تأثير commit عبر commit جديد، خاصة عند العمل الجماعي.

حول المحتوى:

تعرف على أفضل الطرق للتراجع عن أحدث commit محلي في Git باستخدام أوامر reset و revert، مع شرح مبسط لكل حالة واستخداماتها العملية.