پیام های commit در Git اغلب نادیده گرفته می شوند. بسیاری آنها را تنها یک شر ضروری برای حفظ تغییرات می دانند. پیامهای تعهد معنیدار یک عامل حیاتی برای موفقیت یک پروژه هستند: آنها قابلیت ردیابی خوب تغییرات، همکاری کارآمد در تیم و عیبیابی سریعتر را تضمین میکنند. دلیلی برای آماده سازی پیام های commit به صورت خودکار با کمک هوش مصنوعی وجود ندارد.
با کمک به اصطلاح قلاب امکان اجرای اسکریپت ها، به عنوان مثال برای آزمایش خودکار یا بررسی کد، برای رویدادهای خاص در جریان کار Git وجود دارد. سمت مشتری آماده-تعهد-پیام-هوک فوری می شود قبل از پس از باز کردن ویرایشگر commit اجرا می شود. به عنوان مثال، اسکریپت bash زیر باید در پوشه باشد ~/git-template/hooks/prepare-commit-msg
بایگانی شود:
0d311d3e3743f65bd1f7fa370c3b3848
سپس اضافه کنید کلید OpenAI API در صف \(4\) و مدل ChatGPT مورد استفاده در خط را اصلاح میکند \(5\) (در مثال ما gpt-4o
). سپس اسکریپت را قابل اجرا می کنیم chmod +x ~/git-template/hooks/prepare-commit-msg
و شرط بندی کنید git config --global core.hooksPath ~/git-template/hooks
دایرکتوری پیش فرض برای قلاب های Git در پیکربندی جهانی Git.
مهم: این یعنی دیگر لازم نیست هوکهای گیت محلی ایجاد کنید .git/hooks
, اما در ~/git-template/hooks
اگر میخواهید همچنان قلابهای مخصوص پروژه داشته باشید، میتوانید git config core.hooksPath .git/hooks && ln -s ~/git-template/hooks/prepare-commit-msg .git/hooks/prepare-commit-msg
در پروژه مربوطه. اگر میخواهید اسکریپت را دوباره غیرفعال کنید، کافیست git config --global --unset core.hooksPath
.
اسکریپت برای تفاوت تمام فایل های مرحله بندی شده به طور خودکار یک الگوی مناسب برای پیام commit دریافت می کنند: git add -A . && git commit
. همچنین میتوانید یک پیام خالی (".") بفرستید که به طور خودکار بازنویسی میشود: git add -A . && git commit -m "." && git push
– اما مراقب باشید: اعتبار پیام دیگر در اینجا امکان پذیر نیست.
مدلهای هوش مصنوعی اکنون آنقدر پیشرفته هستند که میتوانند پیامهای کامیت خودکار و بسیار معقولی را بر اساس تغییرات ایجاد شده تولید کنند. با تنظیم اعلان (از خط \(13\) میتوانید نتیجه را بیشتر بهینه کرده و آن را با نیازهای خود تطبیق دهید. ضمناً، این اسکریپت در ابزارهای رابط کاربری گیت مانند Tower و SmartGit نیز کار میکند.