سؤال

عند تشغيل git branch -r لماذا الحرائق لا قائمة origin/HEAD؟على سبيل المثال، هناك ريبو عن بعد على GitHub، على سبيل المثال، مع فرعين:ميزة رئيسية ورائعة.إذا فعلت git clone للحصول عليه ثم الانتقال إلى الدليل الجديد وإدراج الفروع، أرى هذا:

$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature

أو بأي ترتيب سيكون (ألفا؟أنا أقوم بتزييف هذا المثال للحفاظ على سرية هوية الريبو البريئة).إذن ما هو HEAD عمل؟هل هذا هو آخر شخص push كان لديهم HEAD وأشار عندما دفعوا؟لن يكون هذا دائما مهما كان ما كانوا عليه pushإد؟ HEADيتنقل...لماذا أهتم بما هو شخص ما HEAD وأشار على جهاز آخر؟

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

يحرر:كان لدي انطباع بأن عمليات إعادة الشراء المخصصة عن بعد (مثل GitHub حيث لن يقوم أحد بالدخول والعمل على هذا الرمز، ولكن فقط سحب أو دفع، وما إلى ذلك) لم يكن ولا ينبغي أن يكون لها رأس لأنه لم يكن هناك، في الأساس، أي عمل ينسخ.ليس كذلك؟

هل كانت مفيدة؟

المحلول

@روبينست صحيح.

في git، يمكنك تحديد الفرع الذي سيتم سحبه افتراضيًا (على سبيل المثال.عند الاستنساخ).بشكل افتراضي، origin/HEAD سوف أشير إلى ذلك.

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

git remote set-head origin trunk

أو حذفه نهائيا عبر

git remote set-head origin -d

مثال.انظر إلى القائمة المنسدلة "تبديل الفروع". trunk يتم فحصها، لذلك origin/HEAD يتبع trunk.

نصائح أخرى

والسبب مستودع عارية يمكن أن يكون لها رأس، غير أن لأنه يحدد والتي يتم التحقق فرع في البداية من بعد نسخة من المخزون.

وعادة، ونقاط الرأس لإتقان، وهذا هو الفرع الذي تم سحبه عندما استنساخ الناس المخزون. تعيين إلى فرع آخر (عن طريق تحرير الرأس في مستودع العارية) النتائج في هذا الفرع يجري سحبه على استنساخ.

<اقتباس فقرة>   

وكنت تحت انطباع بأن   اتفاقيات إعادة الشراء البعيدة مخصصة (مثل جيثب   حيث لا أحد سوف SSH في ويعمل على   هذا الرمز، ولكن فقط سحب أو دفع، الخ)   لم لا ينبغي أن يكون لها رأس   لأنه كان هناك، في الأساس، لا   نسخة العمل. ليس ذلك؟

وكان لي نفس الانطباع بالضبط كما قلت لك.

وأنا حتى لا يمكن حذف هذا الفرع أصل / HEAD تتبع عن بعد المستنسخة من جيثب عن طريق القيام

git branch -d -r origin/HEAD

وكان لهذا أي تأثير.

ويمكن لبعض واحد يقول لي كيف يمكنني حذف هذا الفرع أصل / HEAD تتبع عن بعد؟

تحديث

وعلى الرغم من أنني لم جدت لماذا هناك يتم إنشاء أصل / HEAD عند استنساخ من جيثب، وأجد وسيلة لحذفها.

والإصدار الجديد من بوابة توفر

git remote set-head <name> -d

لحذف مؤشر رأس عديمة الفائدة فرع عن بعد تتبع.

ويمكننا أيضا تغيير الاسم الافتراضي البكم "الأصل" إلى ما نريد باستخدام

git remote rename origin <new_name>

وهذا الأمل يمكن أن تساعد. :)

أنت على حق في ذلك دفع ل تعمل عمليات إعادة الشراء المخصصة عن بعد بشكل أفضل عندما تكون "عارية"، أي عندما لا تحتوي على أدلة عمل.تم تصميم بنية Git للتحديث عن طريق التصحيحات أو pull (fetch)، وهو أمر منطقي في VCS الموزعة.كما تقول المستندات في مكان ما، قد يؤدي الدفع إلى فرع تم سحبه حاليًا إلى حدوث ذلك "نتائج غير متوقعة".

يعد HEAD جزءًا من متطلبات المستودع الصالح. تخطيط مستودع جيت يقول جزئيا:

HEAD

A symref (see glossary) to the refs/heads/ namespace describing the currently active  
branch. It does not mean much if the repository is not associated with any working tree  
(i.e. a bare repository), but a valid git repository must have the HEAD file; some  
porcelains may use it to guess the designated "default" branch of the repository  
(usually master). It is legal if the named branch name does not (yet) exist.

لذلك سترى HEAD كجزء من قائمة الفروع، حتى لو كان "لا يعني الكثير..."

إذا "الأصل" هو مستودع بعيد، ثم يحدد أصل / HEAD الفرع الافتراضي على أن مستودع بعيد.

مثال:

$ git remote show
origin
$ git remote show origin
* remote origin
  Fetch URL: git@github.com:walkerh/pipe-o-matic.git
  Push  URL: git@github.com:walkerh/pipe-o-matic.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)

ملاحظة السطر الذي يقول "رئيس فرع: سيد". هذا هو المكان الذي يتيح للمستودع بعيد عملاء معرفة أي فرع إلى الخروج افتراضيا.

وهناك دائما رأس ذلك <قوية> نقطة لفرع سحبه حاليا من على الريبو عن بعد (والتي قد لا يجوز أن يكون أو الماجستير). حتى مستودعات النائية لها فروع الحالية. وعادة ما هو سيد، ومن على قمة رأسي لا أستطيع التفكير في أي سبب لماذا يمكن لأحد أن ترغب في تغييره، ولكن يمكن تغييرها.

وتخميني هو أن شخصا ما دفع فرع ويطلق عليه رأس:

git push origin HEAD
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top