هذا الدليل يشرح الفرق بين "git reset" و "git revert" بطريقة سهلة للمبتدئين في Git. سنراجع المفاهيم الأساسية لـ Git، وسنشرح بالتفصيل متى يجب استخدام كل أمر وفقًا للمواقف المختلفة.
المفاهيم الأساسية لـ Git
عند استخدام Git، من المهم فهم المفاهيم الأساسية أولاً. تأكد من معرفة المصطلحات الأساسية مثل الالتزام، المستودع، وشجرة العمل.
مع Apidog، ستصبح اختبارات API أكثر ذكاءً وبساطة، مما يقودك نحو نجاح المشروع.
الالتزام ومعرف الالتزام
- الالتزام: في Git، يُطلق على وحدة حفظ التغييرات اسم "الالتزام". يتم تعيين معرف فريد لكل التزام، مما يتيح تتبع سجل التغييرات السابق.
معرف الالتزام: يتم تعيين معرف (هاش) فريد لكل التزام. يتم استخدامه للإشارة إلى التزام معين.
# مثال للحصول على معرف الالتزام
git log --oneline
يمكنك بسهولة التحقق من معرف الالتزام باستخدام الأمر أعلاه.
المستودع وشجرة العمل
- المستودع: قاعدة البيانات الخاضعة لإدارة Git، حيث يتم حفظ جميع سجلات الالتزامات ومعلومات الفروع.
- شجرة العمل: هي مجموعة الملفات التي تعمل عليها حاليًا، وهي المكان الذي يتم فيه إجراء التغييرات. هي الحالة قبل الالتزام إلى المستودع.
شرح "git reset"
كيفية الاستخدام الأساسية
"git reset" هو أمر يستخدم لتغيير سجل الالتزامات. حسب استخدامه، يمكن أن يغير سجل المستودع المحلي.
# إلغاء الالتزام الأخير وترك التغييرات في منطقة التهيئة
git reset --soft HEAD~1
# إلغاء الالتزام الأخير وترك التغييرات في شجرة العمل
git reset --mixed HEAD~1
# إلغاء الالتزام الأخير وحذف التغييرات
git reset --hard HEAD~1
الخيارات الأساسية
- --soft: العودة إلى الالتزام المحدد وترك التغييرات في منطقة التهيئة.
- --mixed: تترك التغييرات في شجرة العمل ويتم مسح منطقة التهيئة.
- --hard: العودة بالكامل مع تضمين التغييرات وإعادة تعيين شجرة العمل.
استخدام المواقف والمزايا والعيوب
- المزايا: من المفيد حذف الالتزامات الخاطئة أو السجلات غير الضرورية. يمكنك الحفاظ على السجل نظيفًا.
- العيوب: استخدام الخيار
--hard
يحتاج إلى الحذر، حيث سيتم حذف التغييرات تمامًا.
# مثال: إعادة تعيين التغييرات بالكامل باستخدام git reset --hard
git reset --hard HEAD~2
هذا الأمر سيحذف آخر التزامين ويُلغي تغييرات دليل العمل.
شرح "git revert"
كيفية الاستخدام الأساسية
"git revert" هو أمر يقوم بإنشاء التزام جديد "يعيد" الالتزام المحدد. يمكنك إلغاء التغييرات السابقة بأمان دون تغيير السجل.
# إنشاء التزام جديد يعيد الالتزام المحدد
git revert <معرف الالتزام>
حول الالتزام الجديد
عند تنفيذ git revert
، يتم إنشاء التزام جديد يحتوي على محتوى إلغاء الالتزام المحدد. سيبقى الالتزام الأصلي، وسيتم إضافة التزام جديد يتضمن التغييرات العكسية.
# مثال: لإلغاء التغييرات التي تحتوي على معرف الالتزام abc123
git revert abc123
استخدام المواقف والمزايا والعيوب
- المزايا: يمكن استخدامه في مستودعات عامة أو فروع متشاركة مع أعضاء آخرين، فهو لا يغير السجل.
- العيوب: سيتم إضافة التزام جديد، مما قد يجعل السجل أكثر تعقيدًا قليلاً.
كيفية التفريق بين "git reset" و "git revert"
المواقف المناسبة
- git reset: عندما تريد تغيير السجل في بيئة محلية، على سبيل المثال، عندما تريد حذف التزام خاطئ تمامًا.
# مثال: إلغاء آخر الالتزام وترك التغييرات في شجرة العمل
git reset --mixed HEAD~1
- git revert: عندما تعمل مع مستودع عام أو مع مطورين آخرين، يمكنك استخدامه بأمان لإلغاء التغييرات دون تغيير السجل.
# مثال: لإلغاء عملية خاطئة على مستودع بعيد
git revert abc123
أفضل الممارسات في العمل
- لا تستخدم git reset لإلغاء الالتزامات التي تم دفعها إلى البعد: عند استخدام
git reset
بعد الدفع إلى البعد، قد يؤثر ذلك على المطورين الآخرين. إذا كنت بحاجة لإلغاء التغييرات عن بُعد، يجب استخدامgit revert
. - قم بإلغاء التغييرات سريعًا: عند ملاحظتك لتغيير خاطئ، قم بإلغاءه مبكرًا لتجنب المشاكل في المستقبل.
- تحقق دائمًا من الفرع الحالي والحالة قبل استخدام الأوامر: من المهم التحقق من الحالة الحالية باستخدام
git status
وgit log
قبل استخدامgit reset
أوgit revert
.
# التحقق من الفرع الحالي والحالة
git status
git log --oneline
الفصل العملي
طرق التعامل مع المواقف الشائعة
- عند القيام بالتزام خاطئ: يمكنك استخدام
git reset
(مع--soft
) للتصحيح أو إلغاء التغييرات باستخدامgit revert
.
# مثال: إلغاء الالتزام الأخير وتركه في منطقة التهيئة
git reset --soft HEAD~1
- عند الرغبة في العودة إلى التزامات سابقة: يمكنك استخدام
git reset
(مع--hard
) للعودة إلى التزام معين، أو استخدامgit revert
لإلغاء التزام سابق.
# مثال: العودة إلى الالتزام قبل اثنين
git reset --hard HEAD~2
- كيفية تصحيح الأخطاء في مستودع عام: إذا قمت بعملية خاطئة في مستودع عام، استخدم
git revert
للتصحيح بأمان.
# مثال: تصحيح عملية خاطئة في مستودع بعيد
git revert abc123
زيادة الكفاءة: تحسين اختبارات API باستخدام Git و Apidog
في تطوير البرمجيات، يعد Git أداة إدارة إصدارات لا غنى عنها. من خلال إتقان استخدام git reset و git revert، يمكنك تحسين مرونة إدارة الشيفرة بشكل كبير. يساعد git reset المطورين على إلغاء التغييرات في بيئتهم المحلية، مما يسمح بالاستجابة الفورية للأخطاء. من ناحية أخرى، يضمن git revert الحفاظ على سجل المشروع بينما يقوم بعودة الأخطاء للتأكد من سلامة المشروع.
إذا كنت تبحث عن حل لإدارة اختبارات API مبتكرة، فإن Apidog هو الخيار المثالي لزيادة كفاءة المشروع. تتكامل هذه الأداة تمامًا مع Git، مما يتيح لك تتبع حالات الاختبار وإدارة التغييرات. بالإضافة إلى ذلك، تدعم أتمتة الاختبارات والتعاون في الوقت الحقيقي، مما يسمح بالحفاظ على كفاءة عالية حتى مع التكرارات السريعة.
يمكنك من خلال اختيار Apidog جعل عملية اختبار API أكثر ذكاءً وبساطة، مما يضمن نجاح المشروع.
إعداد فرع السبرينت
يمكنك من خلال Apidog التحقق من الفرع الحالي للمشروع وإحصائياته من خلال النقر على "الإعدادات" → "فرع السبرينت" في صفحة الإعدادات.
تغيير اسم الفرع
لتغيير اسم الفرع، انقر على "تحرير" على الجانب الأيمن من الفرع، وأدخل اسم الفرع الجديد. يجب أن يكون الاسم الجديد غير مكرر مع أسماء الفروع الحالية!
أرشفة الفرع
عند أرشفة الفرع، يتم إخفاء هذا الفرع. يمكنك الوصول إلى الفرع بعد الأرشفة أو تغيير محتوياته، كما يمكنك إلغاء الأرشفة.
الملخص
git reset
وgit revert
يمكن استخدامهما في مواقف مختلفة. استخدم git reset
عندما ترغب في تغيير سجل المستودع المحلي، واستخدم git revert
عندما ترغب في إلغاء التغييرات بأمان في مستودع عام. ابدأ من هنا لإتقان كيفية استخدام هذه الأوامر في Git.