شرح Git Pull

git pull هو أمر Git يستخدم لتحديث الإصدار المحلي من المستودع من جهاز تحكم عن بعد.

إنه أحد الأوامر الأربعة التي تحث على تفاعل الشبكة بواسطة Git. افتراضيا ، git pullيفعل شيئين.

  1. يحدّث فرع العمل المحلي الحالي (الفرع المعار حاليًا)
  2. تحديث فروع التتبع عن بعد لجميع الفروع الأخرى.

git pullيجلب ( git fetch) الالتزامات الجديدة ويدمج ( git merge) هذه في الفرع المحلي الخاص بك.

بناء جملة هذا الأمر كما يلي:

# General format git pull OPTIONS REPOSITORY REFSPEC # Pull from specific branch git pull REMOTE-NAME BRANCH-NAME

بحيث:

  • OPTIONS هي خيارات الأوامر ، مثل--quietأو--verbose. يمكنك قراءة المزيد حول الخيارات المختلفة في وثائق Git
  • المستودع هو عنوان URL إلى الريبو الخاص بك. مثال: //github.com/freeCodeCamp/freeCodeCamp.git
  • تحدد REFSPEC المراجع التي يجب جلبها والمراجع المحلية التي يجب تحديثها
  • REMOTE-NAME هو اسم المستودع البعيد الخاص بك. على سبيل المثال: الأصل .
  • BRANCH-NAME هو اسم فرعك. على سبيل المثال: تطوير .

ملحوظة

إذا كان لديك تغييرات غير ملتزم بها ، فسيفشل جزء الدمج من git pullالأمر ولن يتم المساس بفرعك المحلي.

وبالتالي ، يجب عليك دائمًا إجراء تغييراتك في فرع قبل سحب ارتباطات جديدة من مستودع بعيد.

جدول المحتويات

  • باستخدام git pull
  • التحكم في الإصدار الموزع
  • git fetch + git merge
  • git pull في IDEs

باستخدام git pull

تُستخدم git pullلتحديث مستودع محلي من المستودع البعيد المقابل. مثال: أثناء العمل محليًا master، قم بالتنفيذ git pullلتحديث النسخة المحلية من masterفروع التتبع عن بعد الأخرى وتحديثها. (مزيد من المعلومات حول تتبع الفروع عن بعد في القسم التالي.)

ولكن ، هناك بعض الأشياء التي يجب وضعها في الاعتبار حتى يكون هذا المثال صحيحًا:

يحتوي المستودع المحلي على مستودع بعيد مرتبط

  • تحقق من هذا عن طريق التنفيذ git remote -v
  • إذا كانت هناك عدة أجهزة تحكم عن بعد ، git pullفقد لا تكون المعلومات كافية. قد تحتاج للدخول git pull originأو git pull upstream.

الفرع الذي قمت بتسجيل الخروج إليه حاليًا لديه فرع تتبع عن بعد مطابق

  • تحقق من هذا عن طريق التنفيذ git status. إذا لم يكن هناك فرع تتبع عن بعد، وبوابة لا أعرف من أين لسحب المعلومات من .

التحكم في الإصدار الموزع

Git هو نظام تحكم في الإصدار الموزع (DVCS). باستخدام DVCS ، يمكن للمطورين العمل على نفس الملف في نفس الوقت في بيئات منفصلة. بعد دفع الكود إلى المستودع البعيد المشترك ، يمكن للمطورين الآخرين سحب الكود المتغير.

تفاعلات الشبكة في Git

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

أوامر الشبكة الأربعة هي:

  • git clone
  • git fetch
  • git pull
  • git push

الفروع في DVCS

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

إذا قمت بالتنفيذ git branch --allداخل مستودع Git ، فستظهر فروع التتبع عن بُعد باللون الأحمر. هذه نسخ للقراءة فقط من الكود كما يظهر على جهاز التحكم عن بعد. (متى كان آخر تفاعل على الشبكة كان من شأنه جلب المعلومات محليًا؟ تذكر تاريخ آخر تحديث لهذه المعلومات. تعكس المعلومات الموجودة في فروع التتبع عن بُعد المعلومات من هذا التفاعل.)

باستخدام فروع التتبع عن بُعد ، يمكنك العمل في Git على عدة فروع بدون تفاعل الشبكة. في كل مرة تقوم بتنفيذ git pullأو git fetchأوامر ، تقوم بتحديث فروع التتبع عن بعد .

git fetch plus git merge

git pullهو أمر مركب ، يساوي git fetch+ git merge.

جلب بوابة

من تلقاء نفسه ، يقوم git fetchبتحديث جميع فروع التتبع عن بعد في المستودع المحلي. لا توجد تغييرات تنعكس في الواقع على أي من فروع العمل المحلية.

دمج بوابة

بدون أي وسيطات ، git mergeسيتم دمج فرع التتبع عن بعد المقابل لفرع العمل المحلي.

بوابة السحب

git fetchتحديثات فروع التتبع عن بعد. git mergeيقوم بتحديث الفرع الحالي بفرع التتبع عن بعد المقابل. باستخدام git pull، تحصل على كلا الجزأين من هذه التحديثات. ولكن ، هذا يعني أنه إذا قمت بتسجيل الخروج إلى featureالفرع وقمت بالتنفيذ git pull، عند الخروج إلى master، فلن يتم تضمين أي تحديثات جديدة. كلما قمت بتسجيل الخروج إلى فرع آخر قد يكون لديه تغييرات جديدة ، فمن الجيد دائمًا التنفيذ git pull.

بوابة سحب في IDEs

قد لا تتضمن اللغة الشائعة في IDES الأخرى الكلمة pull. إذا كنت تبحث عن الكلمات git pullولكن لا تراها ، فابحث عن الكلمة syncبدلاً من ذلك.

جلب PR عن بعد (طلب سحب) إلى الريبو المحلي

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

git fetch origin pull/ID/head:BRANCHNAME

المعرف هو معرف طلب السحب و BRANCHNAME هو اسم الفرع الذي تريد إنشاءه. بمجرد إنشاء الفرع ، يمكنك استخدامه git checkoutللتبديل إلى هذا الفرع.

موارد أخرى على git في guide.freecodecamp.org

  • بوابة الدمج
  • بوابة الخروج
  • Git الالتزام
  • Git stash
  • فرع جيت