Git Fetch: فئة رئيسية
نشرت: 2023-02-26 يتيح لك الأمر Git fetch
النظر قبل القفز. يمكنك اكتشاف التغييرات التي تم إجراؤها على مستودع بعيد ، ولكن بدون الكتابة فوق الملفات المحلية الخاصة بك بالملفات البعيدة.
ما هو git fetch وماذا يفعل؟
Git fetch مقابل السحب
مزامنة مستودعاتك المحلية والبعيدة مع git fetch
مشاهدة جميع العلامات التي تم جلبها
القيام بالجري الجاف أولاً
كيفية إحضار فرع واحد
إحضار كافة الفروع
مقارنة الفروع المحلية والبعيدة
مزامنة فرع محلي مع فرع بعيد
الجرو نصف المدرب
ما هو git fetch وماذا يفعل؟
يقوم أمر fetch
في Git بالتنزيلات والملفات والمعلومات الأخرى من مستودع بعيد إلى مستودعك المحلي بأمان. استخدم الجلب عندما تريد معرفة التغييرات التي أجراها المطورون الآخرون ، دون الاضطرار لقبول التغييرات. تظل ملفاتك المحلية كما هي. لماذا هذا مهم؟
عليك أن تحافظ على ذكائك عنك عندما تعمل كجزء من فريق التطوير. سيحتوي المستودع البعيد أو المركزي على التغييرات والفروع الجديدة التي أنشأها المطورون الآخرون ودفعوها إلى المستودع البعيد.
من المحتمل تمامًا أن يكون شخص ما قد قام بتحديث النسخة البعيدة من الملفات التي قمت بتعديلها محليًا على جهاز الكمبيوتر الخاص بك. إذا قمت بإجراء git pull
بشكل عرضي لتحديث مستودعك المحلي ، فمن المحتمل أن تجد نفسك تتعامل مع عمليات الدمج لإجراء تغييرات قد لا تريدها حتى.
بمجرد تنزيل المعلومات ، يمكنك فحصها ومعرفة التغييرات. يتيح لك ذلك اتخاذ قرار مستنير بشأن ما تريد دمجه الآن ، إذا كان هناك أي شيء ، وما تريد تأجيله إلى وقت لاحق.
Git fetch مقابل السحب
يتصرف الأمر git fetch
مثل الأمر git pull
ولكن بدون الخطوة التي تحل محل ملفاتك المحلية. يتم تحديث مستودعك المحلي ومزامنته ، ولكن لا تتم كتابة التغييرات في حالة عمل المستودع المحلي ، لذلك تظل ملفاتك كما هي.
أو بعبارة أخرى ، فإن الأمر git pull
يشبه git fetch
متبوعًا مباشرة git merge
.
مزامنة مستودعاتك المحلية والبعيدة مع git fetch
لجلب جميع البيانات الوصفية المحدثة والالتزامات من مستودع بعيد إلى مستودعك المحلي ، استخدم الأمر git fetch
مع الاسم أو عنوان URL للمستودع البعيد. افتراضيًا ، يُطلق على أول مستودع بعيد اسم "الأصل".
أصل جلب بوابة
يمكنك حذف كلمة "أصل" إذا كنت تعمل مع مستودع واحد بعيد.
جلب بوابة
هذا يسترد أي تحديثات من مستودع "الأصل" ، لكنه لا يدمج التغييرات في ملفات العمل. يمكننا أن نرى أن هناك فرع جديد يسمى "فرع جديد" تم استرجاعه لنا.
بمجرد استخدام الأمر fetch
، يمكنك رؤية القائمة الكاملة للفروع على جهاز التحكم عن بعد ، باستخدام الخيار -r
(remote) مع أمر الفرع.
فرع بوابة -r
يسرد هذا جميع الفروع التي يعرفها جهاز التحكم عن بُعد ، والتي توجد أيضًا في مستودعك المحلي بعد fetch
.
مشاهدة جميع العلامات التي تم جلبها
وبالمثل ، يمكنك استخدام خيار tag
(لاحظ أنه "علامة" بدون "s") لمشاهدة قائمة العلامات.
علامة بوابة
ذات صلة: كيفية تبديل أجهزة التحكم عن بعد وإضافتها وإزالتها
القيام بالجري الجاف أولاً
على الرغم من أن git fetch
لا يدمج التغييرات في ملفات العمل الخاصة بك ، إلا أنه لا يزال يقوم بتحديث المستودع المحلي الخاص بك. إذا كنت تريد معرفة التغيير الذي سيؤديه أمر fetch
، دون إجرائه فعليًا ، فاستخدم الخيار --dry-run
.
الحصول على بوابة - تشغيل جاف
كيفية إحضار فرع واحد
يعد جلب المعلومات حول فرع واحد أمرًا سهلاً. أضف اسم الفرع إلى سطر الأوامر لإخبار fetch
أنك تحتاج فقط إلى معرفته عن هذا الفرع الواحد.
هنا ، نطلب من fetch
استرداد الفرع "mary-feature" من "أصل" المستودع البعيد.
بوابة جلب الأصل mary-feature
الآن بعد أن أصبحت تفاصيل ومحتويات الفرع البعيد في المستودع المحلي الخاص بك ، يمكنك استخدام الأمر git checkout
لإنشاء فرع جديد والسحب من الفرع البعيد. لن يؤدي هذا إلى الكتابة فوق أي ملفات موجودة إذا كانت هذه هي المرة الأولى التي تستخدم فيها هذا الفرع.
بوابة الخروج -b ماري-ميزة المنشأ / ماري-الميزة
إحضار كافة الفروع
إذا كنت تستخدم أجهزة تحكم عن بُعد متعددة ، فيمكنك توفير الوقت عن طريق سحب جميع التغييرات من جميع الفروع إلى المستودع المحلي الخاص بك باستخدام الخيار --all
.
git fetch - all
مقارنة الفروع المحلية والبعيدة
لمعرفة كيف تختلف الملفات الموجودة في الفرع البعيد عن النسخ المحلية ، استخدم git fetch
، ثم استخدم الأمر git log
.
لاحظ أن الفروع المحلية والنائية لها فترتان " ..
" تفصل بينهما. يُظهر الخيار --oneline
معرف الالتزام ورسالة الالتزام.
جلب بوابة
سجل البوابة - oneline mary-feature..origin / mary-feature
يكون العرض أحادي السطر مفيدًا إذا احتوى الفرع على عدد كبير من التغييرات. للاطلاع على مزيد من المعلومات ، احذف الخيار --oneline
.
بوابة سجل ماري ميزة..origin / ماري ميزة
يوضح لنا هذا وقت وتاريخ كل التزام ، جنبًا إلى جنب مع رسالة الالتزام وتفاصيل الاتصال بمؤلف التغيير.
مزامنة فرع محلي مع فرع بعيد
إذا قررت أنك تريد المضي قدمًا ودمج التغييرات من الفرع البعيد إلى ملفات العمل المحلية ، فيمكنك استخدام هذه الأوامر.
سنقوم بمراجعة الفرع للتأكد من أننا نعمل على أنه فرعنا الحالي العامل ..
بوابة الخروج ماري ميزة
تم فحص الفرع من أجلنا ، وأخبرنا أنه خلف الإصدار البعيد. يمكننا استخدام git pull
لتحديثه ، ثم git status
للتحقق من حالتنا.
بوابة السحب
حالة بوابة
إذا أجرينا بعض التغييرات على ملفاتنا المحلية ، فإن Git يبلغنا عندما نتحقق من الفرع أننا سنحتاج إلى إجراء git pull
لبدء الدمج.
بوابة الخروج ماري ميزة
يبدأ git pull
البسيط عملية استرداد الملفات ودمجها ، أو يمكننا الغوص في الأمر واستخدام git merge
نفسه. سنبدأ بالتأكد من أننا نعمل مع الفرع الصحيح
بوابة الخروج ماري ميزة
سنخبر git
بدمج فرعنا الحالي مع الفرع الموجود في المستودع البعيد ، هناك ستة التزامات مختلفة يجب حلها.
نحتاج إلى إخبار Git عن الفرع البعيد الذي نريد دمجه.
أصل دمج بوابة / ميزة ماري
يفتح محرر للسماح لنا بتقديم رسالة الالتزام. يمكننا قبول الرسالة المقترحة أو إضافة رسالتنا. المحرر هو المحرر الافتراضي الخاص بك ما لم يتم تكوين Git لاستخدام محرر مختلف.
احفظ التغييرات عندما تكون مستعدًا للمتابعة. يستمر الدمج تلقائيًا عند إغلاق المحرر.
كان دمجنا ناجحًا لأنه لم يكن هناك أي تعارضات.
تنشأ التعارضات عندما يتم تغيير نفس سطور التعليمات البرمجية بواسطة مطورين أو أكثر. إذا كانت هذه هي الحالة ، يقوم Git بترميز التعارضات في الملف المتأثر. ستحتاج إلى مراجعتها بدورها واختيار التغيير الذي تريد الاحتفاظ به.
الجرو نصف مدرب
تمامًا مثل الجرو في التدريب ، سيستعيد fetch
ما تطلبه ، لكنه لن يسقطه. إذا كنت تريد فعلاً ما أظهره لك الجرو ، فستحتاج إلى pull
.
ذات صلة: Git rebase: كل ما تحتاج إلى معرفته