دمج العمل مع merge
في الدرس السابق فتحت فرعًا وجرّبت فيه فكرة على الجانب، دون المخاطرة بـ main. لكن التجربة التي تبقى وحدها على فرعها لا تفيد أحدًا — في مرحلة ما تحتاج إلى إعادة العمل إلى موطنه. هنا يأتي دور git merge: أمر واحد يدمج فرعًا آخر داخل الفرع الذي تقف عليه. سنرى حالتين. في الأولى، البسيطة والشائعة، لم يتحرّ
merge أشبه بدمج دفتري رحلات في مجلّد واحد. إذا كتب واحد منكما فقط منذ أن افترقتما — تكتفي بإلحاق صفحاته في النهاية (fast-forward). وإذا كتبتما معًا بالتوازي — تضيف صفحة جديدة تقول 'هنا اتّحدنا' (commit دمج).
- git merge
- يدمج فرعًا آخر داخل الفرع الذي تقف عليه الآن. إنها الطريقة لإعادة العمل من فرع تجربة experiment إلى main.
- fast-forward
- دمج دون commit جديد: إذا لم يتحرّك الفرع الذي تدمج داخله منذ فتح الفرع، يكتفي Git بتحريك المؤشّر إلى الأمام. يبقى التاريخ خطًّا مستقيمًا واحدًا.
- commit دمج (merge commit)
- commit خاصّ له اثنان من الـ parents، يُعلّم النقطة التي اتّحد فيها فرعان. يُنشأ عندما يتقدّم كلٌّ من main والفرع بالتوازي.
- تاريخ متشعّب (diverged)
- حالة يتشارك فيها فرعان نقطة انطلاق مشتركة ثم يتقدّم كلٌّ منهما على حِدة — 'تفرّع' في الرسم البياني يحتاج إلى توحيد.