شرح Git Pull
git pull
هو أمر Git يستخدم لتحديث الإصدار المحلي من المستودع من جهاز تحكم عن بعد.
إنه أحد الأوامر الأربعة التي تحث على تفاعل الشبكة بواسطة Git. افتراضيا ، git pull
يفعل شيئين.
- يحدّث فرع العمل المحلي الحالي (الفرع المعار حاليًا)
- تحديث فروع التتبع عن بعد لجميع الفروع الأخرى.
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
- فرع جيت