ضمّ الإيداعات
يجمع الضمّ (squash) عدة إيداعات في إيداع واحد، مثل fixup أو squash في git rebase -i. في GitTree يفتح كل ضمّ نافذة ضمّ أولًا: تعرض الإيداعات التي تُضمّ والنتيجة والرسالة ومن يُنسب إليه العمل، ولا يتغير شيء قبل أن تؤكد. لا تُمسّ تغييراتك غير المودعة أبدًا، وزر تراجع يعيد الإيداعات كما كانت.
يعمل في GitTree المجاني: كل ميزات Git المحلية بعد تسجيل الدخول.
في هذه الصفحة
قبل أن تبدأ
- الإيداعات على الفرع الذي انتقلت إليه، في خط واحد متصل. لا يمكن أن يحتوي التحديد على إيداع دمج؛ أما ضمّ إيداعات الفرع… فيمكنه ذلك.
- تحصل الإيداعات المضمومة وكل إيداع فوقها على معرّفات جديدة. إن كنت دفعتها من قبل فستحتاج بعدها إلى دفع بالقوة؛ ولا يمكن هنا ضمّ تاريخ يحتويه فرع بعيد آخر.
أين تجده
- حدّد إيداعين أو أكثر في المخطط (Shift مع النقر لتحديد نطاق)، وانقر بزر الفأرة الأيمن: ضمّ الإيداعات….
- انقر إيداعًا واحدًا بزر الفأرة الأيمن: تعديل السجل › ضمّ إلى الإيداع الأب… أو ضمّ إلى الأب مع تجاهل الرسالة….
- انقر الفرع الحالي بزر الفأرة الأيمن في المخطط أو في اللوحة اليسرى: ضمّ إيداعات الفرع….
- اضغط
Alt(⌥على Mac) مع الاستمرار واسحب إيداعًا وأفلته على الإيداع الذي فوقه أو تحته مباشرة. - انقر إيداعًا بزر الفأرة الأيمن: تعديل السجل › إنشاء إيداع fixup… لتودِع ما هو مُجهَّز كإيداع fixup له.
- كل ذلك موجود أيضًا في لوحة الأوامر وفي بطاقة ضمّ الإيداعات في دليل الميزات.
| الإجراء | macOS | Windows وLinux |
|---|---|---|
| ضمّ الإيداعات… للتحديد | ⌥S | Alt+S |
| ضمّ إلى الإيداع الأب… للإيداع المحدد | ⌥Q | Alt+Q |
| ضمّ إيداعات الفرع… للفرع الحالي | ⌥⇧B | Alt+Shift+B |
| تراجع عن الضمّ | ⌘Z | Ctrl+Z |
الخطوات
افتح نافذة الضمّ
استخدم أيًّا من المداخل أعلاه. تُسمّى النافذة بما تضمّه، مثل ضمّ 3 إيداعات أو ضمّ a1b2c3d إلى الإيداع الأب أو ضمّ إيداعات الفرع feature/login. ويقرأ سطر الملخص مثلًا: «3 إيداعات تصبح إيداعًا واحدًا · 12 ملفات · +240 −31 · يحتفظ بتأليف Ada».
راجع الإيداعات التي تُضمّ
تسرد الإيداعات التي تُضمّ الأقدم أولًا تحت النتيجة: إيداع واحد مؤلفه هو مؤلف أقدمها. وفي ضمّ إيداعات الفرع… يعرض الأساس: النقطة التي تفرّع منها الفرع؛ ويتيح لك تغيير… كتابة فرع أو وسم أو إيداع آخر، فتُعدّ الخطة من جديد.
اختر الرسالة
تحت ابدأ الرسالة من اختر جمع الرسائل أو الرسالة الأقدم أو الرسالة الأحدث أو قائمة الإيداعات أو أكتبها بنفسي، ثم عدّل النص كما تشاء. سطر الملخص مطلوب.
أبقِ عمل المؤلفين الآخرين منسوبًا إليهم
إن كتب أشخاص آخرون بعض الإيداعات فإن نسب العمل للمؤلفين الآخرين (Co-authored-by) يضيف سطر
Co-authored-byلكل منهم. تظهر الأسطر التي يضيفها تحته؛ ألغِ تحديده لتستبعدها.اقرأ ما يتغير أيضًا ثم اضمم
يذكر ما يتغير أيضًا عدد الإيداعات فوقها التي تأخذ معرّفات جديدة (وتبقى تغييراتها كما هي)، والفروع والوسوم الأخرى التي تبقى على الإيداعات القديمة. اضغط زر التأكيد، مثل ضمّ 3 إيداعات أو ضمّ إلى الإيداع الأب.
النتيجة المتوقعة
يقول GitTree مثلًا ضُمّت 3 إيداعات إلى a1b2c3d. مع زر تراجع، ويعرض المخطط إيداعًا واحدًا مكان عدة إيداعات.
تغييراتك المُجهَّزة وغير المُجهَّزة والملفات غير المتتبَّعة كما كانت تمامًا: لا يمسّ الضمّ شجرة العمل أبدًا.
طرق الضمّ
| الأمر | ما يُضمّ |
|---|---|
| ضمّ الإيداعات… | الإيداعات التي حدّدتها، إيداعان أو أكثر متجاوران على الفرع الحالي. |
| ضمّ إلى الإيداع الأب… | إيداع واحد في الإيداع الذي تحته. |
| ضمّ إلى الأب مع تجاهل الرسالة… | مثله، مع الاحتفاظ برسالة الأب وحدها (مثل fixup في git rebase -i). |
| ضمّ إيداعات الفرع… | كل إيداعات الفرع منذ تفرّع من أساسه، ومنها إيداعات الدمج، في إيداع واحد على ذلك الأساس. |
السحب مع Alt | الإيداع المسحوب والجار الذي تفلته عليه. تظهر إشارة أفلت لضمّ … حيث يمكنك الإفلات؛ ويلغي Esc ذلك. |
إيداعات دفعتها من قبل
إن كان الفرع البعيد المتتبَّع يحتوي الإيداعات فإن النافذة تذكر ذلك وتطلب منك تحديد سأدفع … بالقوة بعد الضمّ قبل أن تضمّها. وبعدها تعرض الرسالة دفع بالقوة…، الذي لا يستبدل الفرع البعيد إلا إن كان ما زال حيث رأيته آخر مرة (الدفع بالقوة).
إيداعات fixup لوقت لاحق
لإصلاح إيداع أقدم دون إعادة كتابة أي شيء الآن، جهّز التغيير واختر إنشاء إيداع fixup… على ذلك الإيداع. اختر ضمّ مع تجاهل الرسالة (fixup) أو ضمّ مع إضافة ملاحظة (squash) أو ضمّ مع استبدال الرسالة (amend) مع الرسالة الجديدة. يودِع GitTree إيداع fixup! أو squash! أو amend!؛ وتضمّه إعادة التأسيس التفاعلية عند تفعيل رتّب إيداعات fixup! وsquash! وamend!.
الدمج مع الضمّ يحفظ المؤلفين
حين تدمج فرعًا بخيار ضمّ في التغييرات المُجهَّزة (بلا إيداع) يحصل صندوق الإيداع الفارغ على رسالة تسرد الإيداعات التي يجلبها، مع أسطر Co-authored-by لمؤلفيها. وتبقى الرسالة التي كتبتها من قبل كما هي.
الإعدادات
في التفضيلات › عام يختار ضمّ الإيداعات: الرسالة الأولى الرسالة التي تبدأ بها النافذة، ويحدد ضمّ الإيداعات: نسب العمل للمؤلفين المشاركين هل يبدأ نسب العمل محدَّدًا. ويمكن لكل ضمّ أن يغيّر الاثنين.
إن لم يسر الأمر كما توقعت
«الإيداعات ليست متجاورة. اختر سلسلة متصلة.»
حدّد إيداعات متتالية على الفرع الحالي، أو استخدم ضمّ إيداعات الفرع… للفرع كله.
«سيُضمّ إيداع دمج. «ضمّ إيداعات الفرع…» يضمّ إيداعات الدمج؛ أما التحديد فلا.»
استخدم ضمّ إيداعات الفرع…، أو إعادة التأسيس التفاعلية لتختار إيداعًا إيداعًا.
«يحتوي … هذه الإيداعات: إنها تاريخ مشترك ولا يمكن ضمّها هنا.»
يحتويها فرع بعيد آخر. اتركها كما هي، أو اتفق مع فريقك قبل إعادة كتابة تاريخ مشترك من سطر الأوامر.
يتوقف الضمّ بخطأ وزر المراجعة من جديد
تغيّر الفرع بينما كانت النافذة مفتوحة، فلم يُضمّ شيء. اضغط المراجعة من جديد لترى الخطة الجديدة، ثم اضمم مرة أخرى.
أسئلة
كيف أتراجع عن الضمّ؟
اضغط تراجع في الرسالة أو في شريط الأدوات. احتفظ GitTree بالإيداعات القديمة تحت refs/ogt/trash قبل أن ينقل الفرع، فتعود كما كانت تمامًا.
باسم من يكون الإيداع المضموم؟
باسم مؤلف أقدم إيداع يُضمّ وبتاريخه؛ وأنت المُودِع. فعّل نسب العمل للمؤلفين الآخرين (Co-authored-by) ليبقى عمل الباقين منسوبًا إليهم.
هل يشغّل الضمّ خطّافات الإيداع أو يمسّ ملفات العمل؟
لا. يكتب GitTree الإيداعات الجديدة مباشرة، كما يفعل git rebase داخليًا، ولا يغيّر الفهرس ولا الملفات في شجرة العمل. ويوقّعها حين تطلب إعدادات Git إيداعات موقّعة.