نشر GIT جيد باستخدام استراتيجية الفروع مع هيروكو؟

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

سؤال

ما هي استراتيجية النشر الجيدة لاستخدامها مع GIT + Heroku (Ruby On Rails)؟

حاليا الطريقة التي أعمل بها مع مستودع المنشق الأصلية: يتم فحص جميع الميزات (أو "القصص" أولا كفروع، ثم يتم دمجها مع ماجستير ودفع إلى الأصل.

أي شيء يتم دفعه إلى الأصل / الماجستير يؤدي إلى برنامج نصي يسحب رمز القضبان الجديد إلى منطقة التدريج (ريفانس بسيطة).

عندما يأتي الوقت بالنسبة لي لدفع نسخة إنتاج جديدة إلى Heroku، يجب أن أقوم بإنشاء فرع جديد (يسمى شيئا مثل Production_Version_121)، ودفع ذلك بطريقة أو بأخرى إلى Heroku؟

من الناحية المثالية، أود اختيار واختيار ميزات من إصدارات التطوير السابقة يجب أن تتضمنها في فرع الإنتاج ... اختبارها، ودفع إلى Heroku.

على سبيل المثال، قد لا أريد أن يتم دفع جميع أحدث رمز إلى الإنتاج. قد أرغب في الحصول على "A" الذي عملت فيه وميزة "C" مدمجة في الإنتاج بطريقة أو بأخرى، دون بما في ذلك الميزة التجريبية "B" التي تحتاج إلى مزيد من تصحيح الأخطاء.

NB سأحاول تجنب capistrano في البداية والحصول على شيء يعمل يدويا الآن.

أفكار؟ أفضل الممارسات؟

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

المحلول

في مشروع gemcutter لدينا ببساطة إنتاج فرع شجرة. يتم دمج أي تغييرات نريد رؤيته على موقع الإنتاج في هذا الفرع، ثم نشرها مع:

git push heroku production:master

ال staging يقدم Branch غرض مماثل لموقع التدريج (أيضا على Heroku)

نصائح أخرى

منذ أن قرأت فنسنت دريسن نموذج فروع git الناجح, لقد كنت مدمن مخدرات. أصبحت الشركة بأكملها (8 منا) توحيد الآن على هذا النموذج وعدد قليل من الأماكن الأخرى التي استشارتها معها قد بدأت أيضا باستخدامها أيضا.

معظم الجميع أظهروا أنه يقول إنهم كانوا يفعلون شيئا مماثلا بالفعل ووجد أنه من السهل جدا التكيف.

باختصار، لديك فروع 2 دائمة (ماجستير وتطوير). معظم الوقت ستقوم فقط بإجراء فروع من تطوير ودمجها مرة أخرى في التطوير. يمكن أن تحصل الأمور على أكثر تعقيدا قليلا عند الدخول في إصدارات الإنتاج والإصلاحات العاجلة، ولكن بعد قراءة المنشور عدة مرات، يصبح مكرا مؤقتا.

هناك حتى أداة سطر الأوامر تسمى جيت التدفق لمساعدتك.

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

سأقدم لك استراتيجية واحدة محتملة خارج الجزء العلوي من رأسي: نظرا لأن لديك بالفعل إعداد نظام التدريج الآلي الذي يستخدم سيد، أود أن أقترح إنشاء فرع "إنتاج". عندما ترغب في الترويج لإنتاج / ميزة للإنتاج، ستتم فقط دمج فرع الموضوع في فرع "الإنتاج" الخاص بك.

git checkout production
git pull . my-topic-branch
(resolve any conflicts)

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

git checkout production
git tag release-200910201249

أود أن أقترح إنشاء برنامج نصي أو اسم مستعار GIT لأتمتة وضع علامات الطوابع الزمنية، لأن استخدام نظام التسمية متسق مهم. أنا استخدم شيئا مثل هذا:

git config alias.dtag '!git tag release-`date "+%Y%m%d%H%M"`'

التي تسمح لي أن تفعل فقط git dtag عندما أريد وضع علامة على إصدار مع طابع طابع طابع.

يمكنك عرض علاماتك باستخدام git tag وعرضها باستخدام git show release-1234. وبعد لمزيد من المعلومات حول العلامات، تشغيل git help tag. وبعد قد تجد أيضا هذا دليل جيثب على وضع العلامات مفيدة. أود أيضا أن أوصي بقراءة سير عمل أشخاص آخرين (هنا كتابة لطيفة) واختيار واختيار ما يناسبك.

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