هل يمكنني خريطة الفروع المحلية النائية فروع مختلفة البادئات في git ؟
سؤال
نحن نعمل مع شبه مركزية 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.