تخطَّ إلى المحتوى
GitTree
شروحات Gitقراءة في 3 دقائق

طريقة ضبط الفرع المتتبَّع (upstream) في Git

الفرع المتتبَّع هو الفرع البعيد الذي يدفع إليه فرعك المحلي ويسحب منه. إليك كيف تضبطه وتتحقق منه وتغيّره وتزيله، وكيف تصلح خطأ no upstream branch، وما معنى upstream في النسخ المتفرعة.

بقلم Kodmora

شركة البرمجيات المطوّرة لـGitTree

آخر تحديث
  • الفروع
  • المستودعات البعيدة والدفع
في هذه الصفحة

لدفع فرع جديد وضبط الفرع المتتبَّع له، نفّذ `git push -u origin my-branch`. وإن كان الفرع موجودًا على المستودع البعيد، فنفّذ git branch -u origin/my-branch بدلًا من ذلك. بعدها يعرف git push وgit pull وجهتهما دون وسائط. و-u اختصار لـ --set-upstream.

ما هو الفرع المتتبَّع (upstream) في Git؟

الفرع المتتبَّع هو الفرع البعيد المرتبط بفرعك المحلي. يستخدم Git هذا الارتباط في ثلاثة أمور: وجهة git pull وgit push دون وسائط، وما تقارن به أعداد الإيداعات المتقدمة والمتأخرة في git status، ومعنى الاختصار @{u}.

كيف أضبط الفرع المتتبَّع لفرع جديد؟

git switch -c feature/search
git push -u origin feature/search

ينشئ هذا الفرع على المستودع البعيد ويربط بينهما. لا تحتاج إلى -u إلا في الدفع الأول. ويشرح دليل إنشاء الفروع والتبديل بينها الخطوة السابقة.

كيف أضبط الفرع المتتبَّع لفرع موجود؟

إن كان الفرع البعيد موجودًا، فاربطه دون دفع:

# the branch you are on
git branch -u origin/feature/search

# any other branch
git branch -u origin/main main

الصيغة الطويلة هي git branch --set-upstream-to=origin/main. وإن قال Git إن الفرع البعيد غير موجود، فنفّذ git fetch أولًا.

كيف أصلح خطأ The current branch has no upstream branch؟

يعرض Git هذه الرسالة عند تنفيذ git push على فرع لم يُدفع من قبل:

fatal: The current branch feature/search has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin feature/search

نفّذ الأمر الذي يقترحه. ولكي لا يظهر الخطأ مجددًا، اجعل Git يفعل ذلك في كل دفع أول (Git 2.37 أو أحدث):

git config --global push.autoSetupRemote true

أما الرسالة القريبة There is no tracking information for the current branch فمصدرها git pull، وحلها هو نفسه: git branch -u origin/my-branch.

كيف أعرف ما يتتبعه الفرع؟

# every branch, with its upstream and ahead/behind
git branch -vv

# only the current branch
git rev-parse --abbrev-ref @{u}

# commits you have not pushed
git log @{u}..

# commits you have not pulled
git log ..@{u}

كيف أغيّر الفرع المتتبَّع أو أزيله؟

# point the branch somewhere else
git branch -u origin/develop

# stop tracking anything
git branch --unset-upstream

لا يغيّر أي من الأمرين إيداعًا واحدًا، فهما يحرران إعدادات الفرع في .git/config فقط.

ما معنى upstream في النسخ المتفرعة؟

للكلمة معنى ثانٍ. في النسخة المتفرعة (fork)، يكون upstream عرفًا اسمًا لمستودع بعيد: المشروع الأصلي الذي تفرعت منه، بينما origin هو نسختك أنت. وهذا ما يقصده git remote add upstream:

git remote add upstream https://github.com/original/project.git
git fetch upstream
git switch main
git merge upstream/main
git push origin main
معنيا upstream
الفرع المتتبَّعالمستودع البعيد upstream
ما هوالفرع البعيد الذي يتتبعه فرع محليمستودع بعيد اسمه upstream، وهو عادةً أصل النسخة المتفرعة
يُضبط بالأمرgit push -u أو git branch -ugit remote add upstream <url>
يُفحص بالأمرgit branch -vvgit remote -v

طريقة ضبط الفرع المتتبَّع في GitTree

  1. انشر الفرع الجديد

    وأنت على الفرع، اضغط دفع. يخبرك GitTree أن الفرع لا يتتبع فرعًا بعيدًا بعد، ويطلب المستودع البعيد.

  2. اختر المستودع البعيد

    اختر origin واضغط دفع إلى origin. يُنشأ الفرع هناك ويتتبعه من ذلك الحين.

  3. غيّر ما يتتبعه

    انقر بزر الفأرة الأيمن على عنوان الفرع وافتح الفرع المتتبَّع، ثم تعيين الفرع المتتبَّع…. اختر الفرع واضغط تتبُّع، أو اختر إزالة الفرع المتتبَّع.

القائمة الفرعية «الفرع المتتبَّع» في GitTree، وعليها علامة عند تعيين الفرع المتتبَّع…
القائمة الفرعية «الفرع المتتبَّع» في GitTree، وعليها علامة عند تعيين الفرع المتتبَّع…واجهة GitTree مع مستودع للعرض.

راجع ضبط التتبع ونشر الفرع للتفاصيل، ودرس المستودعات البعيدة والفروع المتتبَّعة للتدرب.

الأسئلة الشائعة

ماذا يفعل git push -u؟

يدفع الفرع ويسجل الفرع البعيد باعتباره الفرع المتتبَّع، فلا يحتاج git push وgit pull لاحقًا إلى وسائط.

هل أحتاج إلى -u في كل دفع؟

لا، مرة واحدة لكل فرع. يبقى الإعداد في .git/config حتى تغيّره.

ما الفرق بين origin وupstream؟

origin هو الاسم الافتراضي للمستودع البعيد الذي نسخت منه. أما upstream فهو إما الفرع الذي يتتبعه فرع محلي، وإما عرفًا مستودع بعيد ثانٍ يشير إلى المشروع الذي تفرعت منه.

ما معنى @{u}؟

اختصار للفرع المتتبَّع للفرع الحالي، فالأمر git diff @{u} يقارن فرعك بالفرع البعيد الذي يتتبعه. والصيغة الطويلة هي @{upstream}.

لماذا يدفع فرعي إلى فرع بعيد خاطئ؟

لأن الفرع المتتبَّع يشير إلى هناك، وهذا يحدث غالبًا بعد إعادة التسمية. نفّذ git branch -vv لتراه، ثم git branch -u origin/correct-name لإصلاحه.

المصادر

تحققنا من المعلومات عن المنتجات الأخرى من صفحاتها الرسمية بتاريخ 7 نوفمبر 2026. الأسعار والميزات تتغير، وصفحات الشركات هي المرجع.