نسخ فرع جيت: درس خطوة بخطوة

تخيل أنك تكتب كتابًا وتريد أن تجرب أفكارًا جديدة دون الإضرار بالأصل. يمكنك بدء دفتر جديد لكل فكرة، مع الاحتفاظ بمسوداتك منفصلة.

يتيح Git، وهو نظام للتحكم في الإصدار، لمطوري البرمجيات فعل الشيء نفسه مع التعليمات البرمجية من خلال “الفروع”. كل فرع مثل مسار تطوير منفصل، مما يتيح لك استكشاف التغييرات دون التأثير على القاعدة الأساسية للرمز.

في هذه المقالة، سأرشدك خلال استخدام git clone، مع التركيز على استنساخ الفروع المحددة. إذا كنت تريد معرفة المزيد عن Git، أوصي بهذه الدورة التعليمية مقدمة إلى Git.

لنبدأ بإجابة قصيرة لمن هم في عجلة من أمرهم. بعد ذلك، سنتعمق في المزيد من التفاصيل.

الإجابة القصيرة: كيفية استنساخ فرع محدد

للاستنساخ من فرع محدد في مستودع git، استخدم الأمر:

git clone --single-branch --branch <branch_name> <repository_url>

<branch_name> بأسم الفرع المرغوب فيه و <repository_url> بURL المخزن. هذا الأمر يؤدي إلى إنشاء نسخة محلية للفرع المحدد، مما يسمح للتطوير المتراكم على هذا الفرع بشكل مباشر.

مثال

طوال هذه المقالة، سنستخدمهذا المخزن. يمكنك استخدامه لتجربة الأوامر التي تتعلمها على جهازك. المخزن يحتوي على ثلاث فروارد:

  1. main: الشعب الافتراضي مع ملفين من النصوص.
  2. add-new-file: شعب حيث تم اضافة ملف ثالث.
  3. modify-file: شعب حيث تم تعديل الملف الثاني.

هذه هي الطريقة التي يمكننا توليد نسخة من الشعب add-new-file.

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

ما هو git clone؟

بواسطة الفترة الفريدة، git clone مصمم لتنسخ المجموعة بأكملها إلى مجلد جديد على جهازك المحلي، منقسمًا إلى جميع الفروع. هذا هو النموذج:

git clone <repository_url>

لتنسخ المجموعة المثالية، يمكننا أن نفعل ما يلي:

git clone https://github.com/fran-aubry/git-clone-example.git

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

تغيير الفروع

بعد النسخ الكامل، يمكننا تغيير (التحكم) في الفرع المرغوب فيه باستخدام الgit checkout أمر. على سبيل المثال، للتحكم في الmodify-file الفرع، سنقوم بما يلي:

git checkout modify-file

عمق النسخ

عندما تعمل بـ git، تتم حفظ التغيرات في التفرع من خلال تسجيلها باستخدام الأمر git commit الأمر. يتم إنشاء حالة جديدة لذلك التفرع بواسطة كل تسجيل، ويمكنك استعادتها في أي وقت إذا كان ذلك من الضروري. تخيل كل تسجيل يخلق صورة توقعية، ويتم تتبع جميع هذه الصورات بواسطة git. يمكنك إعادة تشكيل التفرع إلى أي من هذه الصورات في أي وقت.

الأمر التالي git clone ، عندما تستخدم بدون خيارات ، يتم 下载 كل تغيير لكل شعب إلى حاسبك المحلي. وفقاً لحجم المشروع ، قد يستغرق هذا الأمر مساحة كبيرة في تخزينك المحلي. إذا كنت تعلم أنك لن تحتاج لتاريخ المشروع بأكمله يمكنك استخدام الماركات --depth لتحدد كم يمكن تنزيله من التغييرات (أو مستنسخ) التي تريد تنزيلها.

لتنزيل الشعب الرئيسي باستخدام التغيير الأخير فقط ، يمكنك استخدام الأوامر التالية:

git clone --depth=1 https://github.com/fran-aubry/git-clone-example.git

تنزيل شعب معين

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

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

يمكنك أن توجه جيت إلى تسجيل فرع واحد بإضافة المنابع التالية --single-branch و --branch وموافقة على اسم الفرع:

git clone --single-branch --branch <branch_name> <repository_url>

دعونا نفك الأمر إلى أجزاء:

  • git clone: هذه هي الأمر الأساسي لجيت المستخدم لتنسخ مستودع من مصدر بعيد إلى حاسبك المحلي.
  • --single-branch: هذه الخيارة تخبر Git بأنه يجب عليه التسجيل فقط لفرع واحد. إذا لم يتم تعيين فرع، سيتم تسجيل الفرع الافتراضي.
  • --branch الفرع المختار: هذا الخيار ي especifica الفرع الذي تريد توليده. الفرع المختار هو اسم الفرع الذي تريد توليده.
  • رابط المخزن: هذه هي رابط المخزن.

على سبيل المثال ، لتوليد فقط الفرع modify-file من مخزننا ، يمكنك قماء بالتالي:

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

كيفية العمل مع فرع تم توليده

عند العمل على فرع، هناك ثلاثة عمليات أساسية يجب عليك إنجازها:

  1. حفظ عملك الحالي بإنشاء لحظة لحالة العمل الحالية.
  2. رفع التغييرات التي تمكنك من إمكان الجميع الوصول إليها.
  3. تنزيل التغييرات للآخرين ودمجها مع تغييراتك.

حفظ تغييراتك مع git commit

في Git، يطلق على حفظ عملك عملية إنشاءتعميم. يتم خلال هذه العملية تخزين صورة لحالة الفرع الحالية التي تعمل عليها.

تتم حفظ حالة الفرع على جهازك المحلي بعد كل تعميم، مما يسمح لك بالتنقل بين مراحل التقدم المختلفة.

لتحقيق التغييرات التي قمت بها في git، يتم استخدام أمر git commit البرمجي. ومع ذلك، قبل تحقيق التغييرات، يحتاج git إلى معرفة أي ملفات تود 包括在提交中. تحدد الملفات التي يتم حفظها باستخدام أمر git add البرمجي. نمط هذا الأمر هو ما يلي:

git add <path_to_file>

في النمط، <path_to_file> هو المسار إلى الملف الذي تريد تحقيقه. على سبيل المثال، إذا كنا في الفرع modify-file من مخزوننا المثالي وأضفنا فقرة إلى file2.txt، يتوجب عليك إضافة هذا الملف بتنفيذ:

git add file2.txt

بعد إضافة جميع الملفات التي تريد إدراجها في ترحيبك، يمكنك المضي قدماً للترحيب بتنفيذ:

git commit -m <message>

هنا، المادة <message> يجب أن تكون رسالة قصيرة ومحاطة بأقواس مزدوجة، وتوصف التغيرات بسرعة. على سبيل المثال:

git commit -m "Add paragraph"

هذه بعض المقاربات لرسالة الترحيب. إنها أساسية لضمان الواضحية والفهم بين جميع الأشخاص الذين يعملون في المشروع:

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

تحميل تغييراتك بواسطة git push

عندما تتزم بالموافقة، تخلق تصوير من تغيراتك في جهازك المحلي. لتمكين الآخرين عن وصول إلى تغيراتك، يتوجب عليك تحميلها. لذلك، تستخدم الأمر التالي push.

النمط الأساسي لأمر التحميل في Git هو:

git push <remote> <branch>

دعونا نفك القدم:

  • <متنقل>: هذا اسم المستودع البعيد الذي تريد أن تضغط معلوماتك. بشكل تلقائي ، عندما تستنسخ مستودع ، المستودع البعيد يدعى origin.
  • <فرع>: هذا اسم الفرع الذي تريد تخزين تغيراتك فيه. إذا تخطيت هذا المادة ، سيتم تخزين التغيرات وفقاً للفرع الحالي والإعدادات المتعقلة للمتنقل.

هنا بعض الحالات الشائعة للاستخدام لـ git push:

  • تخزين التغيرات من الفرع الحالي: git push
  • تحميل التغييرات من فرع معين: git push origin <branch>

تحميل التغييرات بواسطة git pull

يسمح جيت للفرق الكبيرة بالعمل متجاوزًا في نفس المشروع. عندما يحرر الزملاء نفس الفرع الذي تعمل عليه، قد يصبح فرعك المحلي خارج التوافر مقارنة بالفرع البعيد.

لتحميل توافير الآخرين، نستخدم أمر git pullالبسيط. وهذا الأمر البسيط لأمر التمرير في جيت هو:

git pull <remote> <branch>

هذه ما تفعل كل ما تشابه المادة:

  • <remote>: هذا هو اسم المستودع البعيد الذي تريد أخذ منه. بشكل افتراضي، يدعى هذا المستودع origin.
  • <branch>: هذا هو اسم الفرع الذي تريد أخذ التغييرات منه. إذا لم يتم تحديده، يستخدم git الفرع الحالي والفرع التالي له.

هنا بعض حالات الاستخدام الشائعة لـ git pull:

  • استخراج التغييرات من الفرع الحالي: git pull
  • استخراج التغييرات من فرع معين: git pull origin <branch>

العملية الثلاثية من التحديث إلى الاستخدام والتوجيه

عند استخدام جيت، أوصي بجميع الأحيان بجلب التحديثات لضمان أن فرعك الموجود بالمكان يبقى مع الأحداث الأخيرة. أنا أوصي بالاتاحة للتبليغ بالممارسات الأفضل التالية:

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

تضاربات جيت

عند تنفيذ أمر git pull لتحميل التغييرات من مخزون بعيد، يمكنك أن تواجه ما يمكن أن يكون مشكلة حيث أن هناك تغيير آخر قد غير الأسطر التي غيرها تغييراتك المحلية. تحاول Git تجميع التغييرات تلقاء نفسها وفي العديد من الحالات تنجح. على سبيل المثال إذا تم تعديلات في أجزاء مختلفة من نفس الملف، يمكن لـGit تجميع هذه التغييرات بسهولة لأن التعديلات المتعلقة بالمراسلات تؤثر على المناطق المختلفة.

ومع ذلك، إذا تم تعديل نفس الفقرة من قبل مساهم آخر، فلن يتمكن Git من تحديد أي نسخة يتم إبقاءها، وسينتج عن ذلك صراع تجميع. في هذه الحالة سيتوجب عليك حل الصراع يدويًا بمقرر التحمل للتغييرات التي تلقاء نفسها.

وللمزيد من التوجيهات في حل الصراعات، أوصي بقراءة هذه المقالة حول كيفية حل الصراعات المزاحمة في Git.

تحميل GitHub

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

خلاصة

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

تستخدم التوجيهات للعمل على تغيرات معينة أو ميزات. تنسيق توجيه معين يسمح لك بالمساهمة في تلك التغيرات دون تحميل العمل الغير متعلق بها، وهذا يتطلب مساحة قرص الحاسوب أقل ويحافظ على قرصك المحلي أنظف.

إذا أردت أن تتعلم المزيد عن الموضوع، أوصي بهذا دورة تعليمية لجيتوب وجيت للمبتدئين.

Source:
https://www.datacamp.com/tutorial/git-clone-branch-tutorial