ه‍، ٣، الإرجاع والاستعادة والنقض

يفرّق جت بين الإرجاع reset، والاستعادة restore، والنقض revert، وطبعا إعادة التأسيس rebase.

وقد حاولت أن أجعل أسماءهم العربية متباعدة، تقليلا للخلط الأكيد بينهم.

والخلط بينهم وارد حتى إن دليل (‪“manpage”‬) جت نفسه يخصص فصلا للفرق بينهم، ثم يشير إلى هذا الفصل في دليل كل أمر منهم. فنجد في دليل git فصلا بعنوان ‪“Reset, restore and revert”‬، هذه ترجمته:

في جت ثلاثة أوامر بأسماء متشابهة: الإرجاع git reset، والاستعادة git restore، والنقض git revert.

  • أمر النقض git revert يصنع إيداعا جديدا ينقض (يعكس) فيه التعديلات التي قدّمتها إيداعات سابقة معينة.

  • أمر الاستعادة git restore يستعيد ملفات في شجرة العمل من الفهرس (منطقة التأهيل) أو من إيداع سابق. هذا الأم‍ر لا يحدّث الفرع الحالي. يمكن استعمال هذا الأم‍ر كذلك لاستعادة ملفات في الفهرس من إيداع سابق.

  • أمر الإرجاع git reset يحدّث الفرع الحالي بتحريك رأس الفرع ليضيف أو يزيل إيداعات منه. هذه العملية تغيّر تاريخ الإيداعات.

    يمكن استعمال أمر الإرجاع git reset لاستعادة الفهرس، وهو استعمال يشترك فيه مع أم‍ر الاستعادة git restore.

ثم يذكر هذا في دليل أمر النقض git revert :

لاحظ: يُستعمل أمر النقض git revert لتسجيل إيداعات جديدة تنقض (تعكس) تأثير إيداعات سابقة معينة (غالبا إيداعات خاطئة). إن أردت نبذ التعديلات غير المؤهلة جميعا من مجلد العمل، فانظر أمر الإرجاع git reset، تحديدا الخيار --hard. إذا أردت استخلاص ملفات معينة من إيداع سابق، فانظر أمر الاستعادة git restore، تحديدا الخيار --source. كن حذرا في استعمالك هذين البديلين، فكلاهما يلغي التعديلات غير المؤهلة التي في مجلد عملك.

لم أسمِّ أي أمر منهم باسم «إعادة» خشية خلطه على الناس مع «استعادة»، وكذلك لم أسمِّ أم‍رًا «تراجع» خشية خلطه مع «إرجاع»، بل آثرت جذرًا مختلفًا لكلٍ منهم.