سؤال

أقوم بتطوير وحدة Kernel Linux خارج شجرة مصدر Linux (بالطريقة القياسية) وأحاول تلقائيًا تضمين تجزئة GIT لـ سائق في سلسلة الإصدار المطبوعة أثناء تحميل الوحدة النمطية. يحسب Makefile تجزئة GIT باستخدام الأمر

DRV_TAG   := $(shell git log -1 --pretty=format:"%h")

لكن هذا يلتقط التجزئة GIT لشجرة Linux وليس سائقي. هل يمكنك إخبار Git بالنظر إلى دليل معين عند تنفيذ الأوامر ، أو بدلاً من ذلك ، هل هناك طريقة أفضل للتعامل مع هذه المشكلة؟

هذا يستخدم Git 1.5.4.5 و Linux 2.6.28

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

المحلول

نعم ، يمكنك استخدام --git-dir الخيار الذي يجب عليك تعيينه على ما هو مناسب .git الدليل. أيضا ، بينما يمكنك استخدام git log, ، لما تفعله rev-parse (أمر السباكة) قد يكون أكثر ملاءمة.

git --git-dir=/driver/root/.git rev-parse HEAD

نصائح أخرى

git يأخذ خيار --git-dir وهو ما يتيح لك تحديد المستودع الذي يجب البحث فيه. هناك مشابه --work-tree الخيار إذا كنت بحاجة إلى إلقاء نظرة على شجرة العمل أيضًا.

git --git-dir=/path/to/repo log -1 --pretty=format:"%h"

انظر الى صفحة Git Man لأوصاف هذه الخيارات وغيرها.

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