the - git medical



في Git ، ما هو الفرق بين الأصل/الرئيسي مقابل أصل المنشأ؟ (4)

الأصل هو اسم لرابط بوابة بعيد. يمكن أن يكون هناك الكثير من الأمثلة على أجهزة التحكم عن بعد أدناه.

bangalore => bangalore.example.com:project.git

boston => boston.example.com:project.git

بقدر ما يذهب الأصل / السيد (على سبيل المثال bangalore / master) ، هو مؤشر إلى ارتكاب "master" على موقع bangalore . ترى ذلك في استنساخك.

من الممكن أن تكون بنغالور النائية قد تقدمت منذ أن قمت بـ "الجلب" أو "السحب"

https://src-bin.com

أعلم أن الأصل هو مصطلح للمستودع عن بعد والماجستير هو الفرع هناك.

أنا عن قصد إهمال "السياق" هنا وأنا على أمل أن لا تعتمد الإجابة على السياق. لذا في خطوط أوامر git ، ما هو الفرق بين الأصل الرئيسي / الرئيسي والأصل الرئيسي . هل هناك طريقة غير غامضة لفهم متى تستخدم الأصل / الرئيسي ومتى يجب أن أستخدم ماستر الأصل ؟


Answer #1

بالنظر إلى حقيقة أنه يمكنك التبديل إلى origin/master (على الرغم من أنه في حالة منفصلة) أثناء فصل كابل الشبكة الخاص بك ، يجب أن يكون تمثيل محلي للفرع master في origin .


Answer #2

origin/master هو الفرع المحلي الذي يمثل حالة الفرع master على origin بعيد.

origin master هو الفرع master على origin بعيد.

مثال (في الفرع المحلي master ):

git fetch # get current state of remote repository
git merge origin/master # merge state of remote master branch into local branch
git push origin master # push local branch master to remote branch master

Answer #3

هناك ثلاثة أشياء هنا: إن origin master هو شيئين منفصلين ، origin/master شيء واحد. ثلاثة اشياء المجموع.

فرعين:

  • master هو فرع محلي
  • origin/master هو فرع بعيد (وهو نسخة محلية من الفرع المسمى "master" على جهاز التحكم عن بعد المسمى "origin")

واحد بعيد:

  • origin هو بعيد

مثال: سحب في خطوتين

نظرًا لأن origin/master هو فرع ، فيمكنك دمجه. وهنا سحب في خطوتين:

الخطوة الأولى ، أحضر master من origin بعيد. سيتم جلب فرع master في origin وسيتم تسمية النسخة المحلية origin/master .

git fetch origin master

ثم تقوم بدمج origin/master في master .

git merge origin/master

بعد ذلك ، يمكنك دفع تغييراتك الجديدة في الصفحة master إلى origin :

git push origin master

مزيد من الأمثلة

يمكنك جلب فروع متعددة بالاسم ...

git fetch origin master stable oldstable

يمكنك دمج فروع متعددة ...

git merge origin/master hotfix-2275 hotfix-2276 hotfix-2290




git