الفروع والجراحة

تحرير أي التزام

الخطأ المطبعي في التزام عمره ثلاثة أسابيع. الإصلاح المعتاد هو إعادة أساس تفاعلية: توقّف عند الالتزام، حرِّر، تابع، وادعُ. أما إصلاح Gitcito فهو: انقر بالزر الأيمن على الالتزام، تحرير هذا الالتزام، غيِّر النص، وانتهيت. كما يفتح زر القلم في لوحة تفاصيل الالتزام المحرر نفسه.

تحرير التزام قديم

ما الذي يفعله

اختر أي التزام يكون سلفًا لـ HEAD — سواء أكان التاريخ خطيًا أم لا. تعرض النافذة ملفاته ورسالته؛ حرِّر أيًا منهما. ومن هناك يحدث أمران:

  1. معاينة السلسلة تعيد تشغيل كل التزام فوق الالتزام المحرَّر في الذاكرة (سلسلة من عمليات قطف عبر merge-tree — لا سحب، ولا شجرة عمل، ولا مراجع). يظهر كل التزام تابع أخضر أو أحمر، فتعرف قبل أن يتحرك أي شيء ما إذا كان التحرير يسري بسلاسة أم يصطدم بتغيير لاحق.
  2. إعادة كتابة التاريخ تنفّذ الأمر فعليًا: تُبنى السلسلة نفسها بأوامر git الداخلية، ثم ينتقل الفرع بـ reset --keep — تُحمَل معك تغييراتك غير الملتزَم بها، أو تُلغى إعادة التعيين ولا يحدث شيء. تُلتقط لقطة حارسة أولًا، والتراجع يستعيد السلسلة القديمة.

يُحافَظ على تأليف كل التزام معاد تشغيله وتواريخه؛ التجزئات وحدها تتغير — وهذا هو معنى إعادة كتابة التاريخ.

الدمجات في النطاق

تحرير إيداع أسفل عمليتي دمج — تعيد السلسلة تشغيلهما

وجود دمج بين الالتزام وHEAD لم يعد يعطّل التحرير. تعيد السلسلة تشغيل الدمج بإعادة تطبيق نتيجته المسجّلة — الشجرة التي التزم بها الدمج فعلًا، بما فيها حلول التعارضات — فوق الأصل المعاد كتابته، فتنجو الحلول التي أجراها أحدهم يدويًا من إعادة الكتابة حرفيًا. لا rerere، ولا إعادة دمج، ولا شجرة عمل: أوامر git الداخلية نفسها في الذاكرة كسائر السلسلة، ويُحافَظ على مؤشرَي الأصل كليهما. الفرع الجانبي الذي يحتوي هو أيضًا على الالتزام المحرَّر يُعاد كتابته وتوجيهه؛ أما الذي لا يحتويه فتبقى هويته دون مساس. يخبرك الشريط في النافذة بعدد الدمجات التي يحملها النطاق، وتُظهر خطوات الدمج أيقونة دمج في المعاينة.

التحفّظ الصريح: الدمج المعاد تشغيله لا يكون أفضل من نتيجته المسجّلة. إذا اصطدم تحريرك بأسطر حلّها الدمج نفسه، تتحول المعاينة إلى الأحمر تمامًا كأي خطوة متعارضة أخرى — لا شيء يُخمَّن.

عندما تتعارض السلسلة

التزام لاحق لمس الأسطر نفسها التي تحررها. تعلّم المعاينة ذلك الالتزام بالأحمر مع الملفات المتعارضة، وترفض إعادة الكتابة التنفيذ — لا شيء يُطبَّق نصفيًا، أبدًا. إما أن تحرر بطريقة مختلفة، أو تواجه التعارض مباشرة عبر إعادة أساس تفاعلية.

الحدود

  • يجب أن يكون الالتزام سلفًا لـ HEAD. الالتزام الموجود على فرع جانبي غير مدموج لا يملك مسارًا إلى فرعك الحالي ليُعاد تشغيله.
  • الملفات الثنائية والملفات التي تتجاوز 2 م.ب تُعرض لكنها غير قابلة للتحرير.
  • الالتزام الموجود بالفعل على مستودع بعيد يمكن تحريره، لكن إرسالك التالي سيكون إرسالًا قسريًا — تحذّرك النافذة قبل أن تلتزم بذلك.
  • الملفات المحذوفة في الالتزام لا يمكن تحريرها (لا محتوى فيها ليُحرَّر).

انظر أيضًا: إعادة الأساس التفاعلية · الاستعادة وسجل المراجع · الامتصاص

حسّن هذه الترجمة على GitHub