اصطلاحات Git
کار با Git شامل مجموعهای از اصطلاحات است که آشنایی با آنها به درک بهتر عملکرد ابزار کمک میکند. این بخش به معرفی رایجترین اصطلاحات Git میپردازد.
Branch
شاخه (Branch) نسخهای جداگانه از مخزن است که به شما اجازه میدهد روی ویژگیها یا تغییرات جدید کار کنید بدون اینکه روی پروژه اصلی تأثیر بگذارید. یک پروژه میتواند شاخههای متعددی داشته باشد و شما میتوانید آنها را ایجاد، تغییر نام، حذف یا ادغام کنید.
Checkout
دستور git checkout
برای جابهجایی بین شاخهها یا نسخههای مختلف پروژه استفاده میشود. بهعنوان مثال، اگر بخواهید روی شاخه دیگری کار کنید، میتوانید با این دستور به آن سوئیچ کنید.
Cherry-Picking
دستور git cherry-pick
به شما امکان میدهد یک commit خاص را از یک شاخه انتخاب کرده و آن را روی شاخه دیگر اعمال کنید. این روش زمانی مفید است که تغییر اشتباهی را در شاخهای اعمال کرده باشید ولی نخواهید کل شاخه ادغام شود.
Clone
با دستور git clone
میتوانید یک کپی کامل از یک مخزن راه دور (مثلاً روی GitHub) در سیستم خود ایجاد کنید. این کار به شما امکان میدهد مخزن را بهصورت محلی داشته باشید و روی آن کار کنید.
Fetch
دستور git fetch
تغییرات جدید را از مخزن راه دور دریافت میکند اما آنها را با شاخههای محلی ادغام نمیکند. این دستور برای بهروزرسانی شاخههای ردیابی از راه دور استفاده میشود.
Head
HEAD نشاندهنده آخرین commit شاخه فعلی است. وقتی با دستور git checkout
به شاخه دیگری میروید، مقدار HEAD نیز تغییر کرده و به آن شاخه اشاره میکند.
Index
Index یا Staging Area محلی موقت برای نگهداری تغییرات قبل از commit است. شما فایلها را در این بخش آماده میکنید تا در قالب یک commit ذخیره شوند.
Master
در بسیاری از مخازن قدیمی، شاخه پیشفرض master
نام دارد. پس از کلون کردن یک پروژه، معمولاً تنها این شاخه بهصورت محلی وجود دارد. (در نسخههای جدیدتر Git، شاخه پیشفرض اغلب main
نامگذاری میشود.)
Merge
دستور git merge
برای ادغام تغییرات دو شاخه و یکپارچه کردن آنها در یک شاخه واحد استفاده میشود.
Origin
اصطلاح origin
به آدرس مخزن راه دوری اشاره دارد که پروژه از آن کلون شده است. این نام بهصورت پیشفرض برای سادهتر شدن ارجاع به مخزن استفاده میشود.
Pull / Pull Request
git pull
تغییرات جدید را از مخزن راه دور دریافت کرده و مستقیماً در شاخه فعلی ادغام میکند.
در مقابل، Pull Request قابلیتی در سرویسهایی مانند GitHub است که به توسعهدهندگان اجازه میدهد تغییرات خود را برای بررسی و ادغام به تیم معرفی کنند.
Push
دستور git push
تغییرات ذخیرهشده در مخزن محلی شما را به مخزن راه دور ارسال میکند. این عملیات باعث همگامسازی پروژه با سایر اعضای تیم میشود.
Rebase
دستور git rebase
برای بازنویسی تاریخچه commitها استفاده میشود و تغییرات یک شاخه را روی پایهای جدید قرار میدهد. این دستور اغلب برای مرتبسازی تاریخچه پروژه بهکار میرود.
Remote
Remote به مخزن راه دوری گفته میشود که اعضای تیم از آن برای اشتراکگذاری تغییرات استفاده میکنند. این مخزن میتواند روی سرویسهایی مانند GitHub یا سرور داخلی باشد.
Repository
Repository یا مخزن فضایی است که شامل تمام فایلهای پروژه و تاریخچه تغییرات آنها میشود. هر پروژه Git حداقل یک مخزن دارد که میتواند محلی یا راه دور باشد.
Stashing
با دستور git stash
میتوانید تغییرات نیمهکاره خود را موقتاً ذخیره کنید تا بدون commit کردن، به شاخه دیگری سوئیچ کنید.
Tag
تگها برای علامتگذاری یک نقطه خاص در تاریخچه پروژه استفاده میشوند. معمولاً برای نسخهگذاری (مثل v1.0
) از آنها استفاده میشود. تگها میتوانند سبک (Lightweight) یا مشروح (Annotated) باشند.
Upstream / Downstream
Upstream به مخزن اصلی که از آن کلون گرفتهاید اشاره دارد. Downstream به مخازنی گفته میشود که تغییرات شما را دریافت و ادغام میکنند.
Git Revert
دستور git revert
برای برگرداندن یک commit خاص استفاده میشود. این دستور تغییرات را با یک commit جدید معکوس میکند و تاریخچه را تغییر نمیدهد.
Git Reset
دستور git reset
برای لغو تغییرات و بازگرداندن تاریخچه استفاده میشود. این دستور در سه حالت soft
، mixed
و hard
اجرا میشود که هرکدام سطح متفاوتی از بازنشانی را اعمال میکنند.
Git Ignore
با استفاده از فایل .gitignore
میتوانید مشخص کنید کدام فایلها یا پوشهها نباید توسط Git ردیابی شوند. این روش برای نادیده گرفتن فایلهای موقت یا تنظیمات شخصی کاربرد دارد.
Git Diff
دستور git diff
تغییرات اعمالشده بین commitها، شاخهها یا فایلها را نشان میدهد. این ابزار برای بررسی دقیق تفاوتها قبل از commit یا ادغام استفاده میشود.
Git Flow
Git Flow یک الگوی انشعابدهی است که برای سازماندهی بهتر توسعه پروژه طراحی شده است. این مدل فرآیندهایی مانند ایجاد شاخه ویژگی، انتشار و رفع اشکال را استاندارد میکند.
Git Squash
با استفاده از Squash میتوان چند commit را به یک commit ترکیب کرد. این کار معمولاً هنگام مرتبسازی تاریخچه و قبل از ادغام در شاخه اصلی انجام میشود.
Git Rm
دستور git rm
برای حذف فایلها از مخزن استفاده میشود. این دستور فایلها را هم از شاخه کاری و هم از Staging Area حذف میکند.
Git Fork
Fork به معنای ایجاد یک کپی مستقل از یک مخزن (معمولاً روی GitHub) است. این روش به شما امکان میدهد تغییرات خود را بدون تأثیرگذاری بر پروژه اصلی اعمال کنید. معمولاً برای مشارکت در پروژههای متنباز از Fork استفاده میشود.
- مخزن را Fork کنید.
- تغییرات موردنظر را اعمال کنید.
- یک Pull Request برای پیشنهاد تغییرات ارسال کنید.