پڕۆژەی گیت (Git) بە فەرمی وەشانی Git 2.55.0ـی ڕاگەیاند. ئەم وەشانە نوێیە کۆمەڵێک گۆڕانکاری گرنگ، خێراکردنی فەرمانەکان و چەند تایبەتمەندییەکی نوێی تێدایە کە بەشێکیان بە هاوبەشی لەگەڵ تیمی گیتلاب (GitLab) پەرەیان پێدراوە.
لێرەدا بە زمانی سادە گرنگترین نوێکارییەکانی ئەم وەشانە دەخەینە ڕوو:
١. فەرمانی fixup لە git-history
لە وەشانی پێشوودا (Git 2.54.0) ئامرازێکی نوێ بە ناوی git-history ناسێندرا. ئێستا لە وەشانی ٢.٥٥.٠ دا، بەشێکی نوێی بۆ زیادکراوە بە ناوی fixup.
جاران ئەگەر بتویستایە گۆڕانکارییەک بخەیتە ناو کۆمیتێکی کۆنەوە (Commit)، دەبوو سەرەتا کۆمیتێکی فیکسئەپ دروست بکەیت و دواتر بە شێوەیەکی کارلێککار (Interactive Rebase) تێکەڵی بکەیت:
git commit --fixup=<commit-id>
git rebase -i --autosquash <commit-id>^
ئەم پڕۆسەیە کەمێک ئاڵۆز بوو. ئێستا بە فەرمانی نوێی git history fixup دەتوانیت ڕاستەوخۆ گۆڕانکارییە ئامادەکراوەکان (Staged) بخەیتە ناو کۆمیتە دیاریکراوەکە:
git history fixup <commit-id>
خاڵی بەهێز چاکسازییەکە چییە؟ بەهۆی ئەوەی ئەم فەرمانە لە ڕێگەی git-historyەوە کاردەکات، تەواوی ئەو لقە ناوخۆییانەی (Local branches) دیکەش کە ئەو کۆمیتەیان تێدایە، بە شێوەیەکی ئۆتۆماتیکی Rebase دەبنەوە.
٢. پاڵپشتیکردنی fsmonitor بۆ سیستەمی لینوکس (Linux)
لە ڕیپۆزیتۆرییە زۆر گەورەکاندا، فەرمانی git status کاتێکی زۆری پێدەچوو چونکە گیت ناچار بوو تەواوی فۆڵدەرەکان بپشکێنێت بۆ دۆزینەوەی گۆڕانکارییەکان. بۆ چارەسەری ئەمە، گیت لە ساڵی 2018 دا سیستەمی core.fsmonitorـی ناساند کە لە پشتەوە چاودێری گۆڕانکارییەکان دەکات و داتاکان کاش (Cache) دەکات.
لە ساڵی 2022 دا، ئەم چاودێریکەرە کرا بە بەشێکی ناوخۆیی گیت بەبێ پێویستی بە ئامرازی دەرەکی، بەڵام تەنها بۆ ویندۆز و ماک بەردەست بوو. ئێستا لە وەشانی ٢.٥٥ دا، ئەم تایبەتمەندییە بۆ Linuxـیش زیادکراوە بە بەکارهێنانی inotify.
⚠️ تێبینی: بەهۆی ئەوەی ئەم سیستەمە چاودێری یەک بە یەکی فۆڵدەرەکان دەکات، لە پڕۆژە زۆر گەورەکاندا ڕەنگە پێویستت بەوە بێت لیمیت یان سنووری fs.inotify.max_user_watches لەسەر لینوکسەکەت بەرز بکەیتەوە.
٣. ناردنی کۆد بۆ کۆمەڵە سێرڤەرێک (Remote Group Push)
پێشتر فەرمانی git fetch دەیتوانی لە یەک کاتدا کۆد لە کۆمەڵێک سێرڤەری جیاواز (Remote group) ڕابکێشێت ئەگەر ئاوها ڕێکتخستبا:
git config set remotes.forks "origin upstream"
بەڵام فەرمانی git push نەیدەتوانی ئەمە بکات. لەم وەشانەدا ئەم کێشەیە چارەسەر کراوە و ئێستا دەتوانیت بە یەک فەرمان، لقی سەرەکی خۆت بۆ تەواوی ئەو سێرڤەرانە بنێریت کە لە گروپەکەدا دیاریت کردوون:
git push forks main
٤. کەمکردنەوەی پانی هێڵەکان لە git log --graph
فەرمانی git log --graph مێژووی کۆمیتەکان بە شێوەی هێڵکاری ASCII پیشان دەدات. لەو پڕۆژانەی گەشەپێدەری زۆریان هەیە، ئەم هێڵکارییە زۆر پان و شێواو دەبوو، بە شێوەیەک دەقەکانی دەبردە دەرەوەی شاشەی تێرمیناڵەکە.
لە Git 2.55 دا، بژاردەیەکی نوێ زیادکراوە بە ناوی --graph-lane-limit=<n> کە ڕێگەت پێدەدات ژمارەی ئەو هێڵانە سنووردار بکەیت. هێڵەکانی زیاتر لەو ژمارەیە دەبڕدرێن و بە هێمای ~ پیشان دەدرێن بۆ ئەوەی شاشەکە ڕوونتر بێت:
git log --graph --graph-lane-limit=5
٥. جێگیربوونی زیاتری زمانی ڕەست (Rust) لە ناو گیتدا
پرۆسەی هێنانی زمانی Rust بۆ ناو کۆدی گیت لە ئاداری 2025ـەوە (لە وەشانی 2.49) دەستی پێکردووە. لەم وەشانی ٢.٥٥ـەدا، بەکارهێنانی کۆمپایلەری Rust کراوە بە مەرجێکی سەرەکی بۆ بنیادنانی گیت لە سەرچاوەکەیەوە (Build from source)، مەگەر ئەوەی بە شێوەیەکی دەستی لە کاتی ڕێکخستنی سورسەکەدا ناچالاکی بکەیت:
# Meson
meson configure -Drust=disabled
# Makefile
make NO_RUST=YesPlease
تێبینی: ئەم گۆڕانکارییە تەنها کاریگەری لەسەر ئەو کەسانە هەیە کە گیت لە سەرچاوەکەیەوە دادەمەزرێنن (Compile)، نەک بەکارهێنەرانی ئاسایی.
٦. خێراکردنی git-grep و git-cherry لە Partial Clonesدا
لە کاتی بەکارهێنانی تایبەتمەندی Partial Clone (کە تێیدا ڕیپۆزیتۆرییەکە دادەبەزێنیت بەبێ دابەزاندنی ناوەرۆکی فایلەکان یان Blobs بۆ خێراکردن)، کاتێک فەرمانێکی وەک git grepت بەکاردێنا بۆ گەڕان بەدوای وشەیەکدا لە مێژوودا، گیت ناچار بوو فایل بە فایل داواکاری بۆ سێرڤەر بنێرێت بۆ دابەزاندنی فایلەکان.
لە وەشانی 2.55 دا، ئەم پڕۆسەیە چاکسازی تێدا کراوە؛ ئێستا تەواوی ئەو فایلانەی کە کەمون، بە یەکجار و لە یەک گەشتدا (Single negotiating round-trip) لە سێرڤەرەکە داوا دەکرێن و دادەبەزێنرێن، ئەمەش خێراییەکی ئێجگار زۆر بە فەرمانی git grep و git cherry دەبەخشێت.
🚀 کورتە: ئەگەر بەکارهێنەری لینوکسیت، یان لەسەر پڕۆژەی گەورە کار دەکەیت کە لقی زۆری تێدایە، نوێکردنەوەی گیت بۆ وەشانی 2.55.0 یارمەتیدەرێکی باش دەبێت بۆ خێراکردنی کارەکانی ڕۆژانەت.