هل يمكنني خريطة الفروع المحلية النائية فروع مختلفة البادئات في git ؟

StackOverflow https://stackoverflow.com/questions/167697

  •  03-07-2019
  •  | 
  •  

سؤال

نحن نعمل مع شبه مركزية git هنا حيث أعمل.كل مطور له بهم الشجرة في وسط git ، بحيث يبدو شيئا من هذا القبيل:

master
alice/branch1
alice/branch2
bob/branch1
michael/feature
release/1.0
release/1.1

العمل محليا في شجرة لدي topic/feature, الذي يتوافق مع michael/feature في وسط الشجرة.

لقد تم استخدام

git push origin topic/feature:michael/feature

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

أنا أبحث عن نظافة طريقة للقيام بذلك.فعلى سبيل المثال،"git push".وأظن أن وضع مختلف عن بعد مع تعديل جلب refspec سوف نفعل ذلك, ولكن لست متأكدا بالضبط كيف نفعل ذلك.أنا أيضا غير متأكد من كيفية تعديل الحالية فرع التعاريف استخدام مختلفة عن بعد.

بلدي الحالي .git/config تبدو شيئا مثل:

[remote "origin"]
    url = git://central/git/project
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "topic/feature"]
    remote = origin
    merge = refs/heads/michael/project

تحرير: أود أيضا أن تطبيق هذا أن تسحب/جلب.ولكن هل branch.<name>.merge تأخذ الرعاية من ذلك ؟

سوف نستمر في البحث هذا المنصب هنا إذا كنت تجد شيئا, ولكن أنا على أمل الحصول على بعض الأفكار الجيدة الأخرى.

تحرير 2: لقد قررت أنني سوف تبقي المحلية والبعيدة فرع الأسماء نفسها.يبدو أنه سيكون على الأقل العمل أقل عرضة للمشاكل في المستقبل.

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

المحلول

إذا كنت تستطيع ، أقترح عليك استخدام نفس الفرع أسماء محليا & عن بعد.ثم git push سيتم دفع جميع الفروع المحلية إلى المقابلة فروع في المستودع المركزي.

استخدام البادئات في المحلية والبعيدة repos, تحتاج إلى إضافة رسم إلى ملف config الخاص بك في كل مرة تقوم بإنشاء ميزة جديدة فرع.الأمر لإعداد الخرائط على الموضوع/BRANCH_NAME هو

 git config remote.origin.push refs/heads/topic/BRANCH_NAME:michael/BRANCH_NAME

نصائح أخرى

في [النائية "الأصل"] القسم ، إضافة سطر واحد في الخرائط.بما في ذلك سيد إلى سيد.

push = refs/heads/master:master
push = refs/heads/topic/feature:michael/feature

أنا لست متأكدا من كيفية القيام بذلك مع بوابة الأمر config.

تكون على علم أنه من الآن فصاعدا جميع فروع دفعت في نفسه عند القيام مباشرة بوابة دفع (لا params).

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

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

git remote add heroku git@heroku.com:YOURAPPNAME.git
git checkout -b heroku -t heroku/master

الخاص بك التكوين ينتهي غرار ما @بول يشير إلى (صبي "أبسط" في الواقع).

ترى هذا جوهر (مع تعديلات من قبلي) للاستخدام الخطوات التي تعمل بشكل جيد بالنسبة لي https://gist.github.com/2002048.

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