Jump to content

دليل جيريت

From mediawiki.org
This page is a translated version of the page Gerrit/Tutorial and the translation is 100% complete.
إذا كان لديك بعض الخبرة في سطر الأوامر وجيت، فاستخدم الدليل المختصر بدلًا من ذلك.

يشرح هذا الدليل كيفية تثبيت جيت واستخدامه لإنشاء وتعديل طلبات التغيير في جيريت.

  • للاطلاع على وثائق مرجعية لمهام محددة، راجع Gerrit/Advanced usage بدلًا من ذلك.
  • إذا كنت ترغب في التدرّب على كيفية استخدام جيريت دون كتابة باتش لمشروع برمجي «حقيقي» تابع لويكيميديا، فاستخدم بيئة اختبار جيريت بدلًا من ذلك.

في هذا الدليل، تبدأ الأوامر التي يجب إدخالها بعلامة الدولار داخل مربع، مثل هذا: command. لا تُدخِل البادئة $.
إذا كان الأمر يتضمّن أيضًا متغيّرًا يجب عليك تغييره بنفسك، فسيُعرض المتغيّر باللون الأحمر: command variable.

ما هو جيت؟

جيت هو نظام تحكم بالإصدارات موزع مجاني ومفتوح المصدر. تعني «موزّع» أنه لا توجد نسخة مركزية من المستودع. باستخدام جيت، بمجرد استنساخ المستودع، سيكون لديك نسخة كاملة الوظائف من الشفرة المصدرية، مع جميع الفروع والإصدارات الموسومة تحت تصرّفك.

إنشاء حساب مطوّر في ويكيميديا

إذا لم يكن لديك حساب مطوّر في ويكيميديا بعد، أنشئ حسابًا. سيُستخدم نفس اسم المستخدم وكلمة المرور لتسجيل الدخول إلى جيريت أدناه.

إعداد جيت

توضح هذه التعليمات كيفية تثبيت جيت كأداة تعمل عبر سطر الأوامر (نافذة الطرفية). إذا كنت تفضّل واجهة مستخدم رسومية (GUI) بدلًا من سطر الأوامر، فاطّلع على قائمة العملاء التي يديرها مشروع جيت. للاطلاع على تعليمات تثبيت بديلة، راجع الوثائق الرسمية.

التثبيت

اتبع تثبيت جيت لتعلّم كيفية تثبيت جيت على نظام التشغيل الخاص بك.

إعداد جيت

لعرض جميع متغيرات الإعداد التي يستخدمها جيت، شغّل git config -l.

الآن بعد تثبيت جيت، حان الوقت لإعداد معلوماتك الشخصية. يجب أن تحتاج إلى القيام بذلك مرة واحدة فقط. يمكنك أيضًا تغيير معلوماتك الشخصية في أي وقت عن طريق تشغيل هذه الأوامر مرة أخرى.

يتتبّع جيت من يقوم بكل عملية commit من خلال التحقق من اسم المستخدم والبريد الإلكتروني. بالإضافة إلى ذلك، تُستخدم هذه المعلومات لربط عمليات commit الخاصة بك بحسابك في جيريت.

أدخل الأمرين أدناه لتعيين اسم المستخدم وعنوان البريد الإلكتروني الخاص بك. استبدل Gerrituser باسم مستخدم حساب مطوّر ويكيميديا الخاص بك (كان يُعرف سابقًا باسم مستخدم «Wikitech» أو «جيريت» أو «LDAP»، وجميعها تشير إلى الشيء نفسه). استبدل gerrituser@example.com بعنوان بريدك الإلكتروني الخاص بك. واستبدل shell_user باسم مستخدم الصدفة (Shell) الذي اخترته عند إنشاء حساب مطوّر ويكيميديا:

git config --global user.email "gerrituser@example.com"

git config --global user.name "My Name"

git config --global url."ssh://shell_user@gerrit.wikimedia.org:29418/".insteadOf "https://gerrit.wikimedia.org/r/"

git config --global gitreview.remote origin

git config --global gitreview.username Gerrituser

إعداد مفاتيح SSH في جيريت

نستخدم مفتاح SSH لإنشاء اتصال آمن بين حاسوبك وجيريت. يوصي فريق أمان ويكيميديا، اعتبارًا من أغسطس 2021، بأن يستخدم المستخدمون الذين ينشئون مفاتيح SSH النوع ed25519 للحصول على أفضل أمان وأداء.

الحصول على مفتاح SSH الخاص بك

اتبع SSH keys#إنشاء مفتاح SSH جديد.

إضافة المفتاح العام SSH إلى حسابك في جيريت

  • سجّل الدخول إلى واجهة الويب الخاصة بجيريت. اسم المستخدم وكلمة المرور الخاصة بجيريت هي نفسها الخاصة بـحساب مطوّر ويكيميديا الخاص بك.
  • انقر على اسم المستخدم الخاص بك في الزاوية العلوية اليمنى، ثم اختر «Settings».
  • انقر على «SSH Keys» في القائمة على اليسار.
  • الصق المفتاح العام (SSH Public Key) الخاص بك في الحقل المخصّص، ثم انقر على «ADD NEW SSH KEY».

يرجى ملاحظة أنه يجب عليك إضافة مفاتيح SSH الخاصة بك في واجهة ويب جيريت على ‎gerrit.wikimedia.org‎ حتى إذا كنت قد أضفتها بالفعل في مدير الهوية في Cloud VPS / Toolforge‎ على ‎idm.wikimedia.org‎. هذه الأنظمة منفصلة ولا تشارك مفاتيح SSH فيما بينها.

اختبار اتصال SSH مع جيريت

اتصل بخادم جيريت عبر ssh للتحقق مما إذا كان كل شيء يعمل كما هو متوقع. استبدل shell_user باسم مستخدم Shell الخاص بك كما هو موضح في إعدادات جيريت الخاصة بك:

ssh -p 29418 shell_user@gerrit.wikimedia.org
  • انتبه وتحقق من أن «بصمة المفتاح» (key fingerprint) مطابقة لـبصمة SSH الخاصة بـgerrit.wikimedia.org:29418. إذا كانت متطابقة، فأجب «Yes» على السؤال «Are you sure you want to continue connecting?». ثم أدخل عبارة المرور (passphrase) الخاصة بمفتاحك.
  • يجب أن تظهر لك رسالة «Welcome to Gerrit Code Review». يجب أن يُظهر السطر الأخير «Connection to gerrit.wikimedia.org closed.».
  • إذا واجهت مشكلات، فاستخدم ssh -p 29418 -v shell_user@gerrit.wikimedia.org (استبدل shell_user باسم مستخدم shell الخاص بك). سيقدّم -v مخرجات تفصيلية (verbose) للمساعدة في تحديد المشكلات. اقرأ استكشاف أخطاء جيريت وإصلاحها.

يبدو مثال رسالة نجاح اتصال SSH مع جيريت كما يلي:

مثال:

تنزيل الكود باستخدام جيت

الملعب

إذا كنت ترغب في التدرّب على استخدام جيريت، يمكنك تنزيل (ويُعرف أيضًا باسم "استنساخ") المستودع الذي يستخدمه هذا الدليل التعليمي والمسمّى «sandbox».

شغّل الأمر التالي في سطر الأوامر عبر Git Bash:

git clone https://gerrit.wikimedia.org/r/sandbox

سيؤدي هذا إلى نسخ السجل الكامل وقاعدة الشيفرة الخاصة بمستودع امتداد «sandbox» إلى جهازك. سيكون لديك مجلد عمل للفرع الرئيسي الخاص بالامتداد (ويُسمّى عادةً أيضًا «git master»). ادخل إلى المجلد الجديد (باستخدام الأمر ‎cd sandbox‎). يمكنك الآن الاطلاع على الشيفرة والبدء في تعديلها.

المستودعات الموجودة

لن يمنحك استنساخ مستودع Sandbox إعداد بيئة تطوير أو تثبيتًا يعمل لبرنامج ميدياويكي . (يتطلب التشغيل وجود نواة ميدياويكي ووضع الشيفرة التي استنسختها في موقع يتوقعه خادم الويب لديك.) راجع التنزيل من جيت لمعرفة كيفية تنزيل نواة ميدياويكي أو الامتدادات أو الواجهات أو أي مستودع مشروع آخر مستضاف على ‎gerrit.wikimedia.org‎ باستخدام جيت.

Vagrant

إذا كنت قد نزّلت ميدياويكي أو الامتدادات باستخدام Vagrant، فتأكد من أنك ضبطت جيت لدفع الشيفرة باستخدام SSH بدلًا من HTTPS.

التحضير للعمل مع جيريت

الصفحة الرئيسية: Gerrit/git-review

يتطلب جيريت أن تحتوي رسالة الالتزام (commit message) الخاصة بك على معرّف تغيير (Change-Id). تبدو بالشكل ‎Change-Id: Ibd3be19ed1a23c8638144b4a1d32f544ca1b5f97‎ وتبدأ بالحرف ‎I‎ (أي الحرف اللاتيني الكبير I). في كل مرة تقوم فيها بتعديل التزام (commit) موجود‎ لتحسين التصحيح (patch) حالي في جيريت، يبقى معرّف التغيير (Change-Id) كما هو، بحيث يفهم جيريت أنها نسخة جديدة من التصحيح (patch set) جديدة لنفس التغيير البرمجي.

توجد إضافة لـجيت تُسمّى ‎git-review‎ تضيف سطر ‎Change-Id‎ إلى التزاماتك (commits). يُنصح باستخدام ‎git-review‎. فهو يجعل إعداد نسخة جيت المستنسخة الخاصة بك، وإرسال التغييرات، أو جلب التغييرات الموجودة أسهل.

تثبيت ‎git-review‎

لمزيد من التفاصيل، يُرجى الاطلاع على جيريت/git-review#التثبيت.

Linux

Windows

macOS

إعداد ‎git-review‎

بعد تنزيل («استنساخ») مستودع، تحتاج إلى إعداده للعمل مع ‎git-review‎. سيحدث ذلك تلقائيًا عند أول محاولة لإرسال التزام (commit)، لكن من الأفضل عمومًا القيام به مباشرة بعد الاستنساخ. تأكد من أنك داخل مجلد المشروع الذي استنسخته (وإلا فستظهر لك الرسالة: ‎"fatal: Not a git repository"‎). ثم نفّذ هذا الأمر:

git review -s --verbose

في نهاية المخرجات تقريبًا، ينبغي أن ترى شيئًا مشابهًا لهذا:

مثال:

أو شيئًا مشابهًا لهذا إذا كنت تستخدم إصدارًا أحدث من ‎git-review‎:

مثال:

قد يطلب منك هذا اسم مستخدم Git الخاص بك، إذا كان مختلفًا عن اسم مستخدم shell الذي تستخدمه.

إذا لم تتمكن من تثبيت ‎git-review‎، فيمكنك استخدام رافع التصحيحات في جيريت أو دليل جيريت/ويب لإرسال التصحيح.

يستخدم ‎git-review‎ الفرع ‎master‎ افتراضيًا. إذا كان المستودع الذي تعمل عليه يستخدم فرعًا آخر، مثل ‎main‎، فستحتاج إلى ضبط متغير الإعداد ‎gitreview.branch‎. يمكن القيام بذلك باستخدام الأمر التالي (حيث إن ‎main‎ هو اسم الفرع):

git config --add gitreview.branch main

إرسال تصحيح

تأكد من أنك استنسخت مستودع الشيفرة الذي تهتم به (انظر تنزيل الشيفرة باستخدام جيت أعلاه).

تأكد من أنك داخل مجلد مستودع الشيفرة (يُظهر لك الأمر ‎pwd‎ موقعك الحالي).

تحديث فرع التطوير الرئيسي

تأكد من أن فرع التطوير الرئيسي (الفرع الذي أُنشئ عند استنساخ المستودع لأول مرة) مُحدَّث:

git pull origin master

لكن انتبه إلى أن بعض المستودعات تستخدم اسمًا مختلفًا لفرع التطوير الرئيسي (فعلى سبيل المثال، تستخدم بعض المستودعات ‎main‎ بدلًا من ‎master‎، أو يستخدم مستودع ‎operations/puppet‎ الفرع ‎production‎ بدلًا من ‎master‎).

إنشاء فرع

أولًا، أنشئ فرعًا محليًا لتغييرك الجديد. استبدل ‎branch-name‎ أدناه باسم قصير لكن وصفي إلى حدّ معقول (مثل ‎T1234‎ إذا كانت هناك مهمة ‎فبريكاتور ‎ مقابلة لتغييراتك، أو ‎cleanup-something‎، أو ‎badtitle-error‎). سيستخدم الآخرون هذا الاسم أيضًا للتعرّف على فرعك.

git checkout -b branch-name origin/master

مثال:

سيؤدي هذا إلى إنشاء فرع جديد (باسم ‎branch-name‎) انطلاقًا من أحدث نسخة من فرع ‎master‎، ثم التبديل إليه تلقائيًا. في المثال أعلاه، سمّينا ذلك الفرع الجديد ‎cleanup-something‎.

أجرِ تغييراتك

أجرِ تغييرات على شيفرتك المحلية. استخدم محرر النصوص المفضل لديك وعدّل ملفًا. في المثال أدناه، سنقوم بتعديل الملف README.md وإضافة كلمة.

ثم أغلق محرر النصوص وتحقق من التغييرات التي أجريتها منذ آخر التزام (commit)، داخل الملف (أو الملفات) وداخل المجلد:

git diff

مثال:

يعرض git diff تغييراتك بـتنسيق الفروق الموحد (unified diff format): الأسطر المحذوفة تُسبق بعلامة ناقص (-) والأسطر المضافة تُسبق بعلامة زائد (+). هذه التغييرات لم تُدرج (staged) بعد (عبر git add) للالتزام (commit) التالي.

إدراج تغييراتك للالتزام (commit)

شغّل git status لتحديد أيٍّ من تغييراتك يجب أن يصبح جزءًا من الالتزام (commit) الخاص بك. سيعرض قائمة بجميع الملفات التي قمت بتغييرها داخل المجلد. في هذه المرحلة، ستعرض المخرجات «no changes added to commit» كسطر أخير.

استخدم git add لجعل ملفك (أو ملفاتك) المتغيرة جزءًا من الالتزام (commit) التالي. في المثال أعلاه قمنا بتعديل الملف README.md، لذلك سيكون الأمر:

git add README.md أي ملفات قمت بتغييرها ولم تمررها إلى git add سيتم تجاهلها عند تشغيل git commit في الخطوة التالية.

يمكنك في أي وقت مراجعة التغييرات المدرجة (staged) بالفعل عن طريق تشغيل git status. بعد تشغيلك للأمر git add، لن يعرض git status السطر «no changes added to commit» بعد الآن.
يمكنك أيضًا استخدام git diff --cached لرؤية التغييرات المدرجة (staged) والتي ستدخل في الالتزام (commit) التالي. ستبدو المخرجات مطابقة لأمر git diff أعلاه.

الالتزام (Commit) بتغييراتك المدرجة

بمجرد رضاك عن قائمة التغييرات المضافة عبر git add، يمكنك تحويل هذه التغييرات إلى التزام (commit) في مستودعك المحلي باستخدام

git commit

sandbox/.git/COMMIT_EDITMSG:

سيُطلب منك بعد ذلك في محرر النصوص الخاص بك إضافة ملخص وصفي للالتزام (commit) الخاص بك. يجب عليك اتباع إرشادات رسالة الالتزام. هذا هو ما سيراه الآخرون عند النظر إلى سجل التغييرات في مستودع الشيفرة.

احفظ رسالة الالتزام وأغلق محرر النصوص. سيُعرض ملخص (معرف الالتزام، سطر الموضوع الخاص بك، والملفات والأسطر التي تم تغييرها).

يمكنك تكرار هذه الخطوة مرارًا وتكرارًا حتى تحصل على مجموعة من التغييرات التي تريد دفعها إلى الفرع الرئيسي (master).

عندما تقوم بـ git commit، فإنك تلتزم (committing) بنسختك المحلية.

هذا يعني أنه يمكنك الالتزام (commit) كلما أردت دون إفساد الأمور على مطور آخر في المشروع.

الاستعداد لدفع التزامك إلى جيريت

زامن مجموعة تغييراتك مع أي تغييرات قد حدثت في الفرع الرئيسي أثناء عملك («rebasing» أو إعادة البناء). من داخل فرعك، شغّل:

git pull --rebase origin master
Example:
سيقوم git pull --rebase origin master بجلب الالتزامات الجديدة من المستودع البعيد ثم يعيد بناء (rebase) التزاماتك المحلية فوقها.

سيضع التغييرات التي أجريتها في فرعك جانبًا مؤقتًا، ويطبّق جميع التغييرات التي حدثت في الفرع الرئيسي على فرع عملك، ثم يدمج (يعيد الالتزام) بجميع التغييرات التي أجريتها مرة أخرى في الفرع. القيام بذلك سيساعد في تجنب تعارضات الدمج (merge conflicts) في المستقبل.

بالإضافة إلى ذلك، فإنه يمنحك الفرصة لاختبار تغييراتك مقابل أحدث شيفرة في الفرع الرئيسي.

أنت الآن جاهز لدفع شيفرتك إلى جيريت للمراجعة. إذا قمت بعدة التزامات مرتبطة، فكر في دمجها في التزام واحد للمراجعة.

دفع التزامك إلى جيريت

إذا اتبعت #التحضير للعمل مع جيريت أعلاه وقمت بتثبيت git-review وتشغيل git review -s، فإن الأمر لدفع التغييرات إلى جيريت هو:

git review

Example:

عند النجاح، ستحصل على تأكيد ورابط لمجموعة التغييرات في جيريت. في المثال أعلاه، هذا الرابط هو: https://gerrit.wikimedia.org/r/#/c/sandbox/+/563720

تهانينا! التصحيح (patch) الخاص بك موجود الآن في جيريت ونأمل أن تتم مراجعته قريبًا!

<span id="If_git review_fails">

إذا فشل git review

إذا طُلب منك إدخال بيانات اعتماد اسم المستخدم وكلمة المرور عند تشغيل git review، فهذا يعني أن جيت لم يُعد بعد لاستخدام SSH.

راجع الخطوات في #إعداد جيت. على وجه الخصوص، شغّل الأمر التالي:

git config --global url."ssh://shell_user@gerrit.wikimedia.org:29418/".insteadOf "https://gerrit.wikimedia.org/r/"

لا بأس بتشغيل هذا الأمر مرة أخرى إذا لم تكن متأكدًا مما إذا كنت قد قمت به بالفعل. استبدل shell_user باسم مستخدم الصدفة (shell) الخاص بحساب مطور ويكيميديا الخاص بك.

إذا ظهر لك خطأ Permission denied (publickey). fatal: Could not read from remote repository.، فراجع التعليمات في SSH keys#Add SSH Private key to use with Git للتأكد من تشغيل وكيل SSH وإضافة هويتك. إذا أغلقت صدفة Git Bash الخاصة بك، فسيتم تسجيل خروجك وستحتاج إلى إعادة اتباع هذه التعليمات في كل مرة.

عرض التغيير / الخطوات التالية

افتح الرابط الخاص بمجموعة تغييرات جيريت الخاصة بك في متصفح الويب.

ضمن «Files» (الملفات)، بعد النقر على السهم المتجه لأسفل في أقصى يمين أي ملف في القائمة، يمكنك رؤية الفروق (diff) لتغييراتك لكل ملف: تظهر الأسطر القديمة باللون الأحمر وتظهر الأسطر الجديدة باللون الأخضر.

تختلف خوارزمية الفروق في جيريت (jGit) قليلًا عن خوارزمية الفروق الافتراضية في جيت. قد لا تبدو الفروق التي يعرضها جيريت مطابقة للفروق التي يعرضها جيت على جهازك.

إذا كان الالتزام الخاص بك يعالج تذكرة في Phabricator، فسيُضاف تعليق تلقائيًا في مهمة فبريكاتور إذا اتبعت إرشادات رسالة الالتزام. إذا لم تفعل ذلك، فيمكنك إما إصلاح رسالة الالتزام الخاصة بك (عن طريق إنشاء مجموعة تصحيح محدثة)، أو إضافة تعليق يدويًا على تذكرة فبريكاتور تلك يتضمن رابطًا لمجموعة تغييراتك في جيريت.

مواقف شائعة أخرى

انظر أيضًا الاستخدام المتقدم لجيريت إذا لم تكن حالتك مشمولة هنا.

دمج عدة التزامات في التزام واحد عبر rebase

إذا أجريت عدة التزامات (commits) مرتبطة بمستودعك المحلي قبل الرغبة في إرسالها للمراجعة، فيجب عليك دمج (squash) تلك الالتزامات في التزام واحد.

يتيح لك الخيار --interactive أو -i تغيير (إعادة كتابة) سجل الالتزامات الخاص بك. لكل التزام، يمكنك تعديل وتغيير رسالة الالتزام، أو إضافة ملفات أو إزالتها، أو إجراء تعديلات أخرى.

أولًا، تحتاج إلى إخبار جيت بمدى البعد الذي تريد السحب (pull) منه في السجل. للحصول على قائمة بجميع التغييرات في فرعك:

git rebase -i origin/master

يمكنك أيضًا تحديد قائمة التغييرات الأخيرة المعروضة. «HEAD~3» يعني سحب آخر ثلاثة التزامات:

git rebase -i HEAD~3

بعد كتابة هذا الأمر، سيعرض محرر النصوص التزاماتك بترتيب عكسي وقائمة بالأوامر المتاحة:

Example:

بما أننا نريد إرسال التزام واحد فقط للمراجعة، فسنقوم بدمج (squash) آخر التزامين في الالتزام الأول. وبالتالي قم بتغيير كل شيء باستثناء الـ pick الأول إلى squash:

pick aa8cf1d Adding method customFilterFunctionGetRiskyCountryCodeScore() to GatewayAdapter.
squash 38828e2 Adding $wgDonationInterfaceCustomFiltersFunctionsRiskyCountries to donationinterface.php
squash be33007 Fix a typo

عندما تنتهي من الانتقاء والدمج (squashing) وتحفظ الملف، سيُفتح ملف آخر في محرر النصوص الخاص بك للسماح لك بتعديل ودمج رسائل الالتزام الخاصة بك. كن حريصًا على الاحتفاظ بواحد فقط من أسطر Change-Id وأن يكون في أسفل الرسالة بعد سطر فارغ واحد.

ستُوضع رسائلك من التزاماتك السابقة تلقائيًا في هذه الرسالة:

Example:

تذكر أن تضع رسالة الملخص (المحدثة) في الالتزام. في هذه الحالة ستكون رسالة الملخص الجديدة هي:

(mingle-fr-2012-69) Adding a custom filter for risky countries.
فيما يتعلق بـ Change-Id الذي تريد استخدامه، عند دمج (squashing) التزام في التزام موجود (التزام موجود بالفعل في جيريت)، يجب أن تختار Change-Id الذي ينتمي إلى الالتزام الذي قصدت إرسال مجموعة تصحيح جديدة من أجله (الالتزام الباقي). إذا كانت التزاماتك جديدة وليست في جيريت، فلا يهم أي Change-Id تختاره.

إذا سارت الأمور على ما يرام، يجب أن ترى رسالة نجاح إعادة البناء (rebase):

Example:

بعد ذلك، أرسل التصحيح (patch) للمراجعة:

git review

يجب أن ترى رسالة مثل هذه تُظهر أن مراجعة جيت الخاصة بك ذهبت إلى جيريت (في هذا المثال، إلى https://gerrit.wikimedia.org/r/7187):

Example:

تعديل التغييرات

في بعض الأحيان، قد تحتاج إلى تعديل تغيير مُرسل. يمكنك تعديل تغيير طالما لم يُدمج بعد.

يمكنك تعديل تغييراتك الخاصة. لتعديل التغييرات التي أرسلها شخص آخر، يجب أن تكون عضوًا في مجموعة المساهمين الموثوق بهم (Trusted-Contributors) في جيريت. لتصبح عضوًا في مجموعة المساهمين الموثوق بهم، ابحث عن شخص عضو واطلب منه إضافتك. تتوسع المجموعة بشكل سريع حيث يمكن للأعضاء إضافة أعضاء جدد، لذا استخدم صلاحياتك بمسؤولية.

لتعديل تغيير أجريته محليًا، انتقل أولًا إلى الفرع ذي الصلة:

git checkout branch-name

لتعديل تغيير خارجي، اجلب (checkout) التغيير مباشرة:

git review -d changeNumber

... حيث changeNumber هو الرقم اللاحق في عنوان URL لصفحة مراجعة الشيفرة الخاصة بك في جيريت. بدلًا من ذلك، يقبل git review -d خيار Change-Id لجلب (checkout) تغيير.

أجرِ التغييرات وقم بـ git add لها حسب الحاجة. التزم (Commit) بالتغيير بصفته تعديلًا (amendment):

git commit --amend

تحذير تحذير: لا تستخدم علامة -m لتحديد ملخص الالتزام: سيؤدي ذلك إلى تجاوز الملخص السابق وإعادة إنشاء Change-Id.

ادفع التغيير:

git review

إعادة البناء (تحديث التصحيح ليشمل تغييرات أخرى)

في بعض الأحيان قد ترغب في تحديث التصحيح (patch) الخاص بك ليشمل جميع التغييرات التي حدثت في المستودع منذ إرسالك له. يُسمى هذا «rebasing» (إعادة البناء). لا توجد حاجة للقيام بذلك عادةً، إلا إذا استغرقت المراجعة وقتًا طويلًا وتريد التأكد من أن تغييراتك لا تزال تعمل مع أحدث إصدار من البرنامج، أو إذا أبلغ جيريت عن تعارض في الدمج (merge conflict) في تغييرك.

يمكنك القيام بذلك محليًا باستخدام الأمر git rebase بالخيارات الصحيحة، لكن واجهة الويب الخاصة بجيريت توفر طريقة أكثر ملاءمة للقيام بذلك.

في السيناريو الأبسط، ما عليك سوى النقر على «Rebase»، والاحتفاظ بالتحديد الافتراضي «Rebase on top of the master branch»، والنقر على «Rebase» مرة أخرى للتأكيد.

إذا كان التصحيح (patch) الخاص بك يحتوي على تعارض في الدمج، فسيظهر لك خطأ. يمكنك بعد ذلك تحديد خيار «Allow rebase with conflicts» والمحاولة مرة أخرى، مما سيعدل التصحيح الخاص بك ليضع علامات التعارض، على غرار تلك التي تُنشئها أوامر جيت. ستحتاج بعد ذلك إلى تعديله بنفسك، عبر تحرير الملفات يدويًا لحل التعارضات.

في بعض الأحيان قد ترغب أيضًا في تحديث التصحيح الخاص بك ليشمل تغييرات مقترحة في تصحيح آخر (إضافة اعتمادية على ذلك التصحيح)، ولكن لم تُدمج بعد. في هذه الحالة، حدد «Rebase on a specific change, ref, or commit» بدلًا من ذلك ووفر التغيير في حقل الإدخال.

إذا كان التصحيح الخاص بك يحتوي بالفعل على مثل هذه الاعتمادية، فستحصل أيضًا على خيار تحديد «Rebase on top of the master branch (breaks relation chain)» لإزالتها. ستحصل أيضًا على خيار تحديد «Rebase all ancestors»، والذي سيعيد بناء التصحيح مع الاعتمادية.

إذا كنت تستخدم الأمر git rebase، فمن الأفضل جعل تحديثات إعادة البناء (rebase) في تصحيح منفصل، حتى يسهل على مراجعي الشيفرة الخاصة بك رؤية التغييرات التي أجريتها والتغييرات التي حدثت في التصحيحات الأخرى.

استكشاف الأخطاء وإصلاحها

للتعرف على المشاكل وكيفية حلها، انظر Gerrit/Troubleshooting .

انظر أيضًا

هذه الصفحات مفيدة أيضًا:

Third party guides to Git

References