new - github




كيف تقوم بإنشاء فرع Git عن بعد؟ (12)

أنا خلقت فرعًا محليًا أريد أن "أضغط" على المنبع. يوجد سؤال مماثل هنا في Stack Overflow حول كيفية تعقب فرع بعيد تم إنشاؤه حديثًا.

ومع ذلك ، فإن سير العمل مختلف قليلاً. أولاً ، أريد إنشاء فرع محلي ، وسأقوم فقط بدفعه إلى المنبع عندما أكون راضيًا وأريد مشاركة الفرع الخاص بي.

  • كيف لي أن افعل ذلك؟ (يبدو أن البحث في google لا يأتي بأي شيء).
  • كيف أخبر زملائي بسحبه من مستودع أعلى النهر؟

تحديث مع Git 2.0 هناك إجابة بسيطة كتبت أدناه: https://stackoverflow.com/a/27185855/109305


إنشاء الفرع على جهازك المحلي والتبديل في هذا الفرع:

$ git checkout -b [name_of_your_new_branch]

ادفع الفرع على جيثب:

$ git push origin [name_of_your_new_branch]

عندما تريد ارتكاب شيء في الفرع الخاص بك ، تأكد من وجودك في الفرع الخاص بك.

يمكنك رؤية جميع الفروع التي تم إنشاؤها باستخدام:

$ git branch

والتي سوف تظهر:

* approval_messages
  master
  master_clean

إضافة جهاز تحكم جديد للفرع الخاص بك:

$ git remote add [name_of_your_remote] 

دفع التغييرات من الالتزام الخاص بك إلى فرع الخاص بك:

$ git push origin [name_of_your_remote]

تحديث الفرع الخاص بك عندما تم تحديث الفرع الأصلي من المستودع الرسمي:

$ git fetch [name_of_your_remote]

ثم يجب عليك التقدم بطلب لدمج التغييرات ، إذا كان فرعك مشتقًا من تطوير ، عليك القيام بما يلي:

$ git merge [name_of_your_remote]/develop

حذف فرع في نظام الملفات المحلي لديك:

$ git branch -d [name_of_your_new_branch]

لفرض حذف فرع محلي على نظام الملفات الخاص بك:

$ git branch -D [name_of_your_new_branch]

حذف الفرع على جيثب:

$ git push origin :[name_of_your_new_branch]

هنا كل المعلومات

مشروع آخر موجود


حل Git 2.0+ البسيط:

بدءًا من الإصدار 2.0 من Git ، أصبح السلوك أكثر بساطة :

يمكنك تهيئة git باستخدام push.default = current لتسهيل الحياة:

أضفت هذا حتى الآن يمكنني فقط دفع فرع جديد مع المنبع

$ git push -u

سوف -u تتبع الفرع البعيد من نفس الاسم. لا مع هذه التهيئة ، ستقوم تلقائيًا بتخمين الإشارة البعيدة إلى git push. من وثائق git.config :

push.default

يعرف أن إجراء git يجب أن يتخذ في حالة عدم إعطاء refspec صراحة.

push.default = current - اضغط على الفرع الحالي لتحديث فرع بنفس الاسم على الطرف المستقبل. يعمل في كل من سير العمل المركزي وغير المركزي.

بالنسبة لي ، هذا تبسيط جيد لسير العمل اليومي من Git. يعتني إعداد التكوين بحالة الاستخدام "المعتاد" حيث تضيف فرعًا محليًا وترغب في إنشائه عن بُعد. أيضا ، يمكنني بسهولة إنشاء فروع محلية من أجهزة التحكم عن بعد بمجرد القيام git co remote_branch_name (على عكس استخدام --set-upstream-to flag).

أعرف هذا السؤال وكانت الإجابات المقبولة قديمة نوعًا ما ، ولكن تم تغيير السلوك بحيث توجد خيارات التكوين الآن لجعل سير عملك أكثر بساطة.

للإضافة إلى تهيئة Git العالمية ، شغل هذا الأمر في سطر الأوامر:

$ git config --global push.default current

أسهل الحلول ... Drumm Roll ... git version 2.10.1 (Apple Git-78)

1) git checkout -b localBranchNameThatDoesNotExistInRemote

2) Do your changes , and go a git commit 

3) git push origin localBranchNameThatDoesNotExistInRemote --force

ملحوظة: يجب أن يكون للفرع الذي أنشأته للتو في البيئة المحلية ، والفرع البعيد غير الموجود حيث تحاول الدفع ، نفس الاسم .


أعلم أن هذا السؤال تمت الإجابة عليه بشكل جيد ، لكنني أردت فقط سرد الخطوات التي أتخذها لإنشاء فرع جديد "myNewBranch" والضغط على بعيد ("الأصل" في حالتي) وإعداد التتبع. النظر في هذا الإصدار "TL ؛ DR" :)

# create new branch and checkout that branch
git checkout -b myNewBranch
# now push branch to remote 
git push origin myNewBranch
# set up the new branch to track remote branch from origin
git branch --set-upstream-to=origin/myNewBranch myNewBranch

أولاً ، يجب إنشاء الفرع محليًا

git checkout -b your_branch

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

git push -u origin your_branch

يمكن لأعضاء الفريق الوصول إلى فرعك ، عن طريق القيام بما يلي:

git fetch
git checkout origin/your_branch

يمكنك الاستمرار في العمل في الفرع والدفع كلما أردت بدون تمرير الحجج للدفع بالضغط (الدفع بدون حجة سيدفع سيد المعلم البعيد ، your_branch محلي إلى بعيد your_branch ، الخ ...)

git push

يمكن لأعضاء الفريق الدفع إلى الفرع عن طريق القيام بالالتزامات ثم دفعهم صراحةً

... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch

أو تتبع الفرع لتجنب الحجج لدفع جيت

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push

أولاً تقوم بإنشاء الفرع محليًا:

git checkout -b your_branch

ثم لإنشاء الفرع عن بعد:

git push --set-upstream origin your_branch

ملاحظة: هذا يعمل على إصدارات latits من git:

$ git --version
git version 2.3.0

في صحتك!


إذا كنت تريد بالفعل إنشاء فرع عن بعد دون أن يكون لديك الفرع المحلي ، يمكنك القيام بذلك على النحو التالي:

git push origin HEAD:refs/heads/foo

فإنه يدفع كل ما هو رئيسك إلى فرع فو التي لم تكن موجودة على جهاز التحكم عن بعد.


إنشاء فرع جديد محليًا استنادًا إلى الفرع الحالي:

git checkout -b newbranch

ارتكب أي تغييرات كما تفعل عادة. ثم ، دفعه إلى أعلى المنبع:

git push -u origin HEAD

هذا اختصار لدفع الفرع الحالي إلى فرع بنفس الاسم في origin وتتبعه بحيث لا تحتاج إلى تحديد origin HEAD في المستقبل.


الآن مع بوابة ، يمكنك فقط الكتابة ، عندما تكون في الفرع الصحيح

git push --set-upstream origin <remote-branch-name >

و git تخلق لك فرع الأصل.


كما ورد في الإجابات السابقة ،

git push <remote-name> <local-branch-name>:<remote-branch-name>

يكفي لدفع فرع محلي.

يستطيع زملاؤك سحب جميع الفروع البعيدة (بما في ذلك الفروع الجديدة) باستخدام هذا الأمر:

git remote update

ثم ، لإجراء تغييرات على الفرع ، التدفق المعتاد:

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>

هنا كيف تفعل ذلك في الكسوف من خلال ايجيت.

1) قم بالانتقال إلى عرض "Git Repository Exploring" وقم بتوسيع المشروع git الذي تريد إنشاء فرع له. تحت Brances -> Local .. اختر الفرع الذي تريد إنشاء الفرع له (في حالتي اخترت master .. يمكنك اختيار فرع آخر آخر إذا كنت ترغب في ذلك) .. ثم انقر بزر الماوس الأيمن وانقر على خيار إنشاء فرع. وحدد خيار الخروج من هذا المشروع ثم انقر فوق زر النهاية.

2) الآن من مستكشف المشروع حدد المشروع .. انقر بزر الماوس الأيمن ثم الفريق -> دفع فرع.

سيتم إنشاء فرع بعيد جديد. يمكنك إعطاء اسم الفرع لزملائك حتى يتمكنوا من سحبه.


git push -u <remote-name> <branch-name> لا يعمل إذا لم يتم إنتاج الفرع الذي تم إنشاؤه حديثًا من نفس الريبو ، أي إذا لم تقم بإنشاء الفرع الجديد باستخدام git checkout -b new_branch ، هذا لن يعمل.

على سبيل المثال ، قمت باستنساخ مستودعين مختلفين محليًا واضطررت إلى نسخ repo2 / branch1 إلى repo1 / ثم دفعها أيضًا.

ساعدني This الرابط في دفع فرع بلدي المحلي (مستنسخ من شركة ريبو أخرى) إلى الريبو عن بعد:





git-branch