Git Extras بیش از ۶۰ اسکریپت دارد که به عملکرد پایهای گیت اضافه میشود. در این مطلب طریقه نصب، استفاده و مشارکت در گیت اکستراس را میآموزیم.
در سال ۲۰۰۵ لینوس تروالدز گیت را برای جابجا کردن راهکار مدیریت کنترل سورس توزیعشده که قبلاً مجبور بود برای نگهداری هسته لینوکس استفاده کند، ساخت. از آن موقع، گیت تبدیل به یک راهکار برتر ورژن کنترل برای اپن سورس و تیمهای توسعه cloud-native شد.
حتی برترین اپلیکیشنها از نظر قابلیتهای مورد نیاز مثل گیت هم ممکن است همه قابلیتهای مورد نیاز کاربر را نداشته باشند و افرادی هستند که برای اضافه کردن این قابلیتها تلاش میکنند. در مورد گیت، یکی از این افراد TJ Holowaychuk است. پروژه Git Extras شامل بیش از ۶۰ قابلیت اضافه است که به اسکریپتهای پایه گیت اضافه میشوند و بسیار پرکاربرد و کارراهانداز هستند.
استفاده از Git Extras
در ادامه طرز استفاده ۴ اسکریپت محبوب Git Extras توضیح داده میشود
git-ignore
git-ignore یک اسکریپت مناسب است که به شما اجازه افزودن دستی فایل تایپ و کامنت به فابل .git-ignore را بدون نیاز به باز کردن ویرایشگر متن میدهد. این کامند هم با فایل ignore کلی برای اکانت کاربری شما و هم با فایل ignore فردی برای ریپازیتوریای که در حال کار روی آن هستید، کار میکند.
اجرای git-ignore بدون پارامتر، اول فایل ignore کلی و بعد فایلهای ignore لوکال را لیست خواهد کرد.
$ git ignore
Global gitignore: /home/alice/.gitignore
# Numerous always-ignore extensions
*.diff
*.err
*.orig
*.rej
*.swo
*.swp
*.vi
*~
*.sass-cache
# OS or Editor folders
Thumbs.db
---------------------------------
Local gitignore: .gitignore
nbproject
git-info
git-info همه اطلاعات مورد نیاز شما برای گرفتن head در چارچوب ریپازیتوریای که روی آن کار میکند را بازمیگرداند. این اطلاعات شامل تمام URL های ریموت، برنچهای ریموت، برنچهای لوکال، اطلاعات تنظیمات و آخرین کامیت میشود.
$ git info
## Remote URLs:
origin [email protected]:sampleAuthor/git-extras.git (fetch)
origin [email protected]:sampleAuthor/git-extras.git (push)
## Remote Branches:
origin/HEAD -> origin/master
origin/myBranch
## Local Branches:
myBranch
* master
## Most Recent Commit:
commit e3952df2c172c6f3eb533d8d0b1a6c77250769a7
Author: Sample Author <[email protected]>
Added git-info command.
Type ´git log´ for more commits, or ´git show <commit id>´ for full commit details.
## Configuration (.git/config):
color.diff=auto
color.status=auto
color.branch=auto
user.name=Sample Author
[email protected]
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
[email protected]:mub/git-extras.git
branch.master.remote=origin
branch.master.merge=refs/heads/master
git-mr و git-pr
این دو اسکریپت کارهای مشابهی انجام میدهند و اساساً به یک شکل کار میکنند.
- git-mr یک merg request را از گیتلب وارسی میکند.
- git-pr یک pull request را در گیتهاب وارسی میکند.
در هر دو مورد، شما فقط به شماره merge یا pull request و یا آدرس کامل آن نیاز دارید و این کامند مرجع ریموت را واکشی میکند، برنچ را checkout یا وارسی میکند، و تنظیمات را انجام میدهد. بنابراین گیت میداند که کدام برنچ جایگزین خواهد شد.
$ git mr 51
From gitlab.com:owner/repository
* [new ref] refs/merge-requests/51/head -> mr/51
Switched to branch 'mr/51'
git-release
با ترکیب کردن commit و tag و push در یک کامند واحد، git-release به شما کمک میکند ۳ کامندی را که خیلی از مواقع پشت سر هم اجرا میکنید، یکباره اجرا کنید.
برای کامیت با یک <tagname> مشخص و پیام سفارشی:
$ git release 0.1.0 -m <+ powerful feature added>
دیگر کامندها
اینها فقط ۴ کامند از بیش از ۶۰ کامند Git Extras بود. برای دسترسی به لیست کامل کامندهای در دسترس در Git Extras میتوانید فایل Commands.md را در ریپازیتوری سورس ببینید یا بعد از نصب Git Extras کامند زیر را اجرا کنید.
$ git extras --help
نصب Git Extras
پیشنیاز اصلی برای نصب Git Extras، نصب داشتن نسخه کامند لاین Git است. اگر قصد بیلد کردن از روی سورس را دارید، نیاز به ابزارهایی مثل make هم دارید.
اگر از نسخههای اخیر macOS استفاده میکنید، بهترین کار استفاده از Homebrew است.
$ brew install git-extras
روی لینوکس، Git Extras روی پکیج منیجر محلی هر پلتفرم در دسترس است. گاهی اوقات، احتیاج به فعال کردن یک ریپازیتوری اضافه دارید، مثل EPEL روی CentOS و سپس اجرای یک کامند ساده:
$ sudo yum install git-extras
دستورالعمل نصب کامل برای توزیعهای لینوکس، BSD، و دیگر پلتفرمها در فایل Installation.md در ریپازیتوری در دسترس است.
مشارکت
اگر فکر میکنید عملیاتی هست که در گیت بسیار استفاده میشود و برای آن کامند واحدی وجود ندارد، میتوانید با توسعه و اضافه کردن آن به Git Extras در آن مشارکت کنید. برای مشارکت در Git Extras توضیحات مشخصتری در فایل CONTRIBUTING.md وجود دارد.