Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Git Fetch vs Pull

آخر تحديث

يقوم git fetch بتنزيل أحدث الـ commits من المستودع البعيد لكنه يترك فرع عملك كما هو تمامًا. أما git pull فيقوم بالتنزيل نفسه ثم يدمج تلك الـ commits فورًا في فرعك الحالي. باختصار: git pull = git fetch + git merge.

استخدم fetch عندما تريد النظر قبل الإقدام؛ واستخدم pull عندما تكون مستعدًا للدمج. جرّب كليهما في ساحة الطرفية - وهي shell حقيقية في متصفحك.

git fetch ينزّل commits الجديدة ويحدّث origin/main فقط - ويبقى فرعك كما هو؛ أما git pull فيدمجها فورًا.

جنبًا إلى جنب

Behaviorgit fetchgit pull
ينزّل الـ commits البعيدةنعمنعم
يغيّر فرعك الحاليلانعم
قد يسبب تعارضات دمجلانعم
يعادلتنزيل فقطfetch + merge

الصياغة

CommandWhat it does
git fetchينزّل جميع التغييرات البعيدة دون دمج
git fetch origin mainيجلب فرعًا واحدًا فقط من مستودع بعيد
git pullينزّل ويدمج في الفرع الحالي
git pull --rebaseينزّل، ثم يعيد ترتيب (rebase) الـ commits الخاصة بك في الأعلى
git log HEAD..origin/mainبعد fetch: اطّلع على ما ستدمجه

الأسئلة الشائعة حول Git fetch مقابل pull

ما الفرق بين git fetch و git pull؟
يقوم git fetch بتنزيل الـ commits الجديدة وتحديث فروع التتبّع البعيدة لديك (مثل origin/main) لكنه لا يغيّر فرع عملك. أما git pull فيقوم بنفس عملية الـ fetch ثم يدمج الـ commits الجديدة في فرعك الحالي. إذًا فإن pull يغيّر ملفاتك؛ بينما يكتفي fetch بتحديث معرفتك بالمستودع البعيد.
هل git pull هو مجرد fetch مع merge؟
نعم. git pull هو اختصار لـ git fetch متبوعًا بـ git merge للفرع الذي تم جلبه في فرعك الحالي. مع git pull --rebase، تكون الخطوة الثانية rebase بدلًا من merge، مما يبقي السجل خطيًا.
متى ينبغي أن أستخدم fetch بدلًا من pull؟
استخدم git fetch عندما تريد مراجعة التغييرات الواردة قبل دمجها - على سبيل المثال، git fetch ثم git log HEAD..origin/main لترى بالضبط ما هو الجديد. استخدم git pull عندما تثق بالفعل في التغييرات البعيدة وتريد فقط دمجها في فرعك.
هل يسبب git fetch أي تعارضات؟
لا. يحدّث fetch فروع التتبّع البعيدة فقط؛ وهو لا يمس أبدًا فرع عملك أو ملفاتك، لذا لا يمكنه إنتاج تعارضات دمج. تنشأ التعارضات فقط في خطوة الـ merge - التي ينفّذها pull تلقائيًا لكن fetch لا يفعل.
هل يمكنني التدرّب على هذا عبر الإنترنت؟
نعم. افتح ساحة الطرفية لتشغيل git fetch و git pull في shell حقيقية في متصفحك - لا شيء لتثبيته. كما يغطي مسار Git التفاعلي المجاني من Coddy التعامل مع المستودعات البعيدة خطوة بخطوة.
Coddy programming languages illustration

تعلّم Git مع Coddy

ابدأ الآن