Mesazhet e marrjes në Git shpesh neglizhohen. Shumë i shohin ato vetëm si një e keqe e nevojshme për të shpëtuar ndryshimet. Mesazhet kuptimplote të angazhimit janë një faktor vendimtar për suksesin e një projekti: ato sigurojnë gjurmueshmëri të mirë të ndryshimeve, bashkëpunim efikas brenda ekipit dhe zgjidhje më të shpejtë të problemeve. Nuk ka arsye për të përgatitur mesazhet e kryerjes automatikisht me ndihmën e AI.
Me ndihmën e të ashtuquajturit Grepa Është e mundur të ekzekutohen skriptet, për shembull për testimin e automatizuar ose kontrollimin e kodit, për ngjarje specifike gjatë rrjedhës së punës Git. Nga ana e klientit përgatit-commit-msg-Hok bëhet i menjëhershëm përpara ekzekutohet pas hapjes së redaktorit të commit. Për shembull, skripti i mëposhtëm bash duhet të jetë në dosje ~/git-template/hooks/prepare-commit-msg
të depozitohet:
0d311d3e3743f65bd1f7fa370c3b3848
Në fund, ju shtoni tuajën Çelësi OpenAI API në rreshtin 4 dhe, nëse dëshironi, modifikoni modelin ChatGPT të përdorur në rreshtin 5 (në shembullin tonë gpt-4o
). Më pas e bëjmë skenarin të ekzekutueshëm chmod +x ~/git-template/hooks/prepare-commit-msg
dhe bast me git config --global core.hooksPath ~/git-template/hooks
direktoria e parazgjedhur për grepa Git në konfigurimin global të Git.
Skripti gjeneron për ndryshim Të gjithë skedarët e skeduar marrin automatikisht një shabllon të përshtatshëm për mesazhin e kryerjes: git add -A . && git commit
. Përndryshe, mund të dërgoni gjithashtu një mesazh bosh ("."), i cili më pas do të mbishkruhet automatikisht: git add -A . && git commit -m "." && git push
– Por kini kujdes: vërtetimi i mesazhit nuk është më i mundur këtu.
Modelet e AI janë tani aq të avancuara saqë krijohen mesazhe shumë të arsyeshme të kryerjes automatike bazuar në ndryshimet. Duke rregulluar kërkesën (nga rreshti 13) mund të optimizoni më tej kthimin. Nga rruga, skripti funksionon gjithashtu në mjetet e Git UI si Kulla dhe SmartGit. Nëse dëshironi të çaktivizoni përsëri sjelljen, thjesht shtypni git config --global --unset core.hooksPath
.