سؤال

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

نظام التحكم الإصدار الذي أتوقع استخدامه لهذه الجيت، ولكن يتم قبول خيارات أخرى أيضا. يمكن أن يكون التوقيع عبر شهادات GNUPG أو SSL.

سير العمل الذي أفكر فيه سيكون تقريبا:

  1. الجذع الحالي التحقق من الموارد
  2. يتم تطوير التغييرات في الفرع بواسطة مطوري واحد أو أكثر
  3. واحد أو أكثر من المطورين يوقعون التغييرات التي قدمها الفرع
  4. مراجع مراجعات واختبارات التغييرات
  5. المراجع يوقع التغييرات التي قدمها الفرع
  6. الفرع هو "دمج" في الجذع التحقق الحالي

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

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

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

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

المحلول

لن يتم توقيع التغييرات حتى تقوم بالعلامة. أي شيء قبل تلك النقطة يمكن التحقق منها من قبل المؤلف أو من آلية أخرى خارج النطاق، ولكن ليس من داخل GIT.

يمكن أن تحقق GIT من صحة تراث التغيير، ولكن فقط العلامة الموقعة يمكن التحقق من التغيير نفسه صحيحا.

لسير العمل الخاص بك، قد تجد نفسك فقط وضع علامات على الكثير.

نصائح أخرى

يمكنك توقيع علامتك باستخدام مفتاح GPG الخاص بك مع خيار -s في العلامة git tag -s v0.1.0:

   Make a GPG-signed tag, using the default e-mail address's key

لكن لا يمكنك التوقيع على الالتزام.

git هو مرشح جيد منذ:

  • كل ارتكب تم توقيعها بالفعل
  • مفتاح Sha1 لكل الالتزام يكفي للتأكد من الكل لم يتم تعديل Repo
  • يمكن استخدام علامة git -s لتوقيع ارتكاب شخص ما لم يجعل (git tag -m هو أكثر صراحة)

لذا:

  1. الجذع الحالي التحقق من الموارد
    git checkout -b tag_for_last_verified_trunk_content test # branch test
  2. يتم تطوير التغييرات في الفرع بواسطة مطوري واحد أو أكثر
    [work...] git commit -s -m "dev1 comment" ...
  3. واحد أو أكثر من المطورين يوقعون التغييرات التي قدمها الفرع

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

    Signed-off-by: user name 
  4. مراجع مراجعات واختبارات التغييرات

     git tag -m "testing" testing # refer to current commit, 
                                    allowing dev to go on with further changes
  5. المراجع يوقع التغييرات التي قدمها الفرع
    git tag -m "tested" tested testing # put a tag on the same SHA1 than 
                                         the "testing" tag
  6. الفرع هو "دمج" في الجذع التحقق الحالي
    git checkout trunk & git merge tested

Cryry Plotnicki-Chudyk يذكر في التعليقات ذلك، منذ GIT 1.7.9 (يناير 2012، بعد ما يقرب من عامين بعد هذه الإجابة)، يمكنك تسجيل GPG - أي الالتزام الذي تريده، باستخدام git commit -S.
(يرى ارتكاب BA3C69A9., ، المكرر مؤخرا في ارتكاب DF45CB3.)

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