8.5 KiB
title | localeTitle |
---|---|
Git Pull | بوابة سحب |
بوابة سحب
git pull
هو أمر Git يستخدم لتحديث الإصدار المحلي لمستودع من جهاز تحكم عن بعد.
وهو واحد من الأوامر الأربعة التي تحفز التفاعل الشبكي من Git. بشكل افتراضي ، git pull
يفعل شيئين.
- تحديث فرع العمل المحلي الحالي (الفرع المعتمد حاليا)
- تحديثات فروع التتبع عن بعد لجميع الفروع الأخرى.
git pull
جلب الجيت ( git fetch
) تلتزم الجديدة git merge
( git merge
) هذه في الفرع المحلي.
بناء جملة هذا الأمر هو كما يلي:
`# General format git pull OPTIONS REPOSITORY REFSPEC
Pull from specific branch
git pull REMOTE-NAME BRANCH-NAME `
بحيث:
- الخيارات هي خيارات الأوامر ، مثل
--quiet
أو--verbose
. يمكنك قراءة المزيد عن الخيارات المختلفة في وثائق Git - REPOSITORY هو عنوان URL الخاص بك. مثال: https://github.com/freeCodeCamp/freeCodeCamp.git
- تحدد REFSPEC أي من الحزم الذي سيتم جلبه والحلول المحلية المراد تحديثها
- REMOTE-NAME هو اسم مستودع التخزين عن بعد. على سبيل المثال: الأصل .
- BRANCH-NAME هو اسم الفرع الخاص بك. على سبيل المثال: تطوير .
ملحوظة
إذا كان لديك تغييرات غير ملتزم بها ، فسوف تفشل عملية دمج الأمر git pull
وسيتم إلغاء الفرع المحلي الخاص بك.
وبالتالي ، يجب عليك دائمًا الالتزام بتعديلاتك في فرع قبل سحب طلبات جديدة من مستودع بعيد.
جدول المحتويات
باستخدام سحب بوابة
استخدم git pull
لتحديث مستودع محلي من مستودع بعيد عن بعد. على سبيل المثال: أثناء العمل محليًا على الصفحة master
، يمكنك تنفيذ git pull
لتحديث النسخة المحلية من master
وتحديث فروع التتبع عن بُعد الأخرى. (مزيد من المعلومات حول فروع التتبع عن بُعد في القسم التالي.)
ولكن هناك بعض الأمور التي يجب تذكرها في هذا المثال:
- يحتوي المستودع المحلي على مستودع تخزين بعيد مرتبط
- تحقق هذا عن طريق تنفيذ
git remote -v
- إذا كان هناك أجهزة
git pull
عن بعد متعددة ، فقد لا يكونgit pull
معلومات كافية. قد تحتاج إلى إدخالgit pull origin
أوgit pull upstream
. - يحتوي الفرع الذي تم سحبه حاليًا على فرع تتبع عن بعد
- تحقق من هذا عن طريق تنفيذ
git status
. إذا لم يكن هناك فرع تتبع عن بعد ، لا يعرف Git مكان سحب المعلومات منه .
تحكم الإصدار الموزع
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 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
بدلاً من ذلك.
fethcing PR البعيد (سحب الطلب) في الريبو المحلي
ولأغراض المراجعة ، يجب جلب المستفيدين الرئيسيين في المناطق النائية إلى الريبو المحلي. يمكنك استخدام أمر git fetch
النحو التالي لتحقيق ذلك.
git fetch origin pull/ID/head:BRANCHNAME
المعرف هو معرف طلب السحب و BRANCHNAME هو اسم الفرع الذي تريد إنشاءه. بمجرد إنشاء الفرع ، يمكنك استخدام git checkout
للتبديل إلى هذه الفرشاة.