سال‌ها پیش در پروژه‌ای که سه نفر هم‌زمان روی یک مخزن کار می‌کردیم وسط یک merge پیچیده گیر کردم. دو شاخه چندین commit هم‌پوشان داشتند و من نمی‌توانستم تصمیم بگیرم reset بزنم یا revert. یک Cheat Sheet کوچک از Git که سال‌ها کنار دستم بود در چند ثانیه مسیر درست را نشانم داد. از آن روز فهمیدم Cheat Sheet های Git ابزار کار روزمره‌ی هر توسعه‌دهنده‌ای هستند نه فایل‌های تزئینی. در این متن تجربه‌ی خودم از انتخاب و استفاده‌ی مؤثر از این Cheat Sheet ها را با شما در میان می‌گذارم.

چرا Git به Cheat Sheet نیاز دارد؟

Git پرکاربردترین ابزار کنترل نسخه در دنیای توسعه است اما دستوراتش بیشتر از هر ابزار دیگری فراموش‌شدنی هستند. تفاوت دقیق بین git reset و git revert یا تفاوت git fetch و git pull حتی برای توسعه‌دهنده‌های باتجربه همیشه روشن نیست. Cheat Sheet این بار را از حافظه برمی‌دارد و خطای احتمالی را کاهش می‌دهد.

دلیل دوم سرعت کار است. توسعه‌دهنده روزانه ده‌ها دستور Git می‌زند و هر بار مراجعه به مستندات رسمی چند دقیقه تمرکز را از بین می‌برد. Cheat Sheet در همان پنجره‌ی ترمینال یا در کنار آن است و جریان کار را قطع نمی‌کند. اگر تازه با Git آشنا می‌شوید راهنمای آموزش Git از صفر نقطه‌ی شروع خوبی برای یادگیری اولیه است.

دلیل سوم اهمیت Git در پروژه‌های وردپرسی است. حتی یک توسعه‌دهنده‌ی وردپرس که پروژه‌های کوچک تحویل می‌دهد به‌طور معمول با مخزن‌های Git سروکار پیدا می‌کند چون قالب‌ها و افزونه‌های سفارشی بهتر است در مخزن نسخه‌بندی شوند. اگر تازه با وردپرس آشنا می‌شوید وردپرس چیست و چگونه شروع به کار با آن کنیم نقطه‌ی شروع خوبی است.

در Git، حفظ کردن دستورات کافی نیست؛ باید بدانید در هر موقعیت کدام دستور امن است. Cheat Sheet همین نقشه‌ی امنیت را می‌دهد.

دسته‌بندی Cheat Sheet های Git

در تجربه‌ی خودم Cheat Sheet های Git را می‌توان به هفت دسته‌ی کاربردی تقسیم کرد. هر دسته برای نیاز خاصی طراحی شده و انتخاب درست بین آن‌ها بازدهی را چند برابر می‌کند.

  1. راه‌اندازی: نصب و پیکربندی اولیه و ساخت مخزن.
  2. دستورات پایه: add و commit و status و log.
  3. Branch و Merge: ساخت و جابه‌جایی و ادغام شاخه‌ها.
  4. Remote: push و pull و fetch و مدیریت مخزن‌های دور.
  5. بازگردانی: reset و revert و restore.
  6. حل تعارض: مراحل resolve کردن تعارض merge.
  7. پیشرفته: rebase و cherry-pick و stash.

در نگاه اول ممکن است فکر کنید یک Cheat Sheet جامع کافی است اما در عمل هرکدام از این دسته‌ها کاربرد روزمره‌ی خودش را دارد. برای توسعه‌دهنده‌ای که روی پروژه‌ی تیمی کار می‌کند Cheat Sheet Branch و Remote مهم‌ترین است. برای فریلنسری که پروژه‌های شخصی دارد Cheat Sheet پایه و بازگردانی. مسیر کامل دستورات عمومی در دستورات پرکاربرد Git آمده است.

Cheat Sheet راه‌اندازی و پیکربندی

هر پروژه‌ی Git با راه‌اندازی شروع می‌شود و Cheat Sheet این حوزه باید پوشش دهد: پیکربندی نام و ایمیل کاربر init برای ساخت مخزن جدید clone برای کپی مخزن موجود و تنظیمات SSH برای احراز هویت.

در تجربه‌ی خودم اکثر توسعه‌دهندگان این بخش را یک‌بار انجام می‌دهند و فراموش می‌کنند. اما وقتی روی ماشین جدید یا سرور جدید کاری شروع می‌شود همین دستورات لازم می‌شوند. Cheat Sheet راه‌اندازی یک فایل یک‌صفحه‌ای است که در مواقع لزوم نجات‌دهنده می‌شود. مسیر کامل این حوزه در آموزش Git از صفر آمده است.

Cheat Sheet دستورات پایه روزمره

هسته‌ی کار روزمره با Git چهار دستور ساده است: git status برای مشاهده‌ی وضعیت git add برای افزودن تغییرات به staging git commit برای ثبت تغییرات و git log برای مشاهده‌ی تاریخچه. Cheat Sheet خوب باید این چهار دستور را با پرچم‌های پرکاربردشان پوشش دهد.

در تجربه‌ی خودم پرچم‌های git log بیشترین فراموش‌شدگی را دارند. مثلاً --oneline برای نمایش خلاصه --graph برای نمایش درخت شاخه‌ها و -p برای نمایش تغییرات. Cheat Sheet ای که این پرچم‌ها را با خروجی نمونه نشان دهد از یک فهرست ساده مفیدتر است. مسیر کامل دستورات پایه را در دستورات پرکاربرد Git نوشته‌ام.

Cheat Sheet Branch و Merge

Branch و Merge هسته‌ی کار تیمی در Git است. Cheat Sheet این حوزه باید پوشش دهد: ساخت شاخه با git branch یا git checkout -b جابه‌جایی بین شاخه‌ها ادغام شاخه‌ها با git merge حذف شاخه‌های تمام‌شده و مشاهده‌ی همه‌ی شاخه‌ها با git branch -a.

در تجربه‌ی خودم بزرگ‌ترین فراموش‌شدگی در این حوزه تفاوت merge و rebase است. ادغام شاخه‌ها با merge یک commit ادغام می‌سازد اما rebase تاریخچه را خطی می‌کند. Cheat Sheet ای که این تفاوت را بصری نشان دهد ارزش بالایی دارد. مسیر کامل این حوزه در برنچ در Git و مرج در Git آمده است.

Branch و Merge ساده به نظر می‌رسند اما تا وقتی یک تعارض واقعی را حل نکرده باشید، عمق آن‌ها را نمی‌فهمید.

Cheat Sheet Remote و همکاری تیمی

Remote هسته‌ی همکاری تیمی در Git است. Cheat Sheet این حوزه باید پوشش دهد: افزودن مخزن دور با git remote add push برای ارسال تغییرات pull برای دریافت و ادغام fetch برای دریافت بدون ادغام و مدیریت شاخه‌های ریموت با git push -u.

در تجربه‌ی خودم بزرگ‌ترین فراموش‌شدگی این حوزه تفاوت git fetch و git pull است. fetch تغییرات را می‌گیرد اما ادغام نمی‌کند ولی pull ادغام خودکار انجام می‌دهد. Cheat Sheet ای که این تفاوت را روشن کند از یک فهرست ساده مفیدتر است. مسیر کامل همکاری تیمی را در آموزش Git از صفر و آموزش GitHub نوشته‌ام.

در پروژه‌های وردپرس هم مدیریت مخزن‌های remote نقش مهمی دارد چون قالب‌ها و افزونه‌های سفارشی باید بین محیط لوکال و سرور واقعی جابه‌جا شوند. مسیر این کار در گیت در وردپرس آمده است.

Cheat Sheet بازگردانی و رفع اشتباه

بخش بازگردانی مهم‌ترین بخش Git برای مبتدی‌ها و پرمصرف‌ترین بخش برای حرفه‌ای‌ها است. Cheat Sheet این حوزه باید سه دستور اصلی را پوشش دهد: git restore برای بازگردانی فایل‌ها از staging git reset برای عقب بردن HEAD و git revert برای ساخت commit معکوس.

در تجربه‌ی خودم تفاوت این سه دستور بیشترین سردرگمی را برای مبتدی‌ها ایجاد می‌کند. reset تاریخچه را عقب می‌برد اما revert یک commit جدید می‌سازد که اثر commit قبلی را خنثی می‌کند. Cheat Sheet ای که این تفاوت را با مثال نشان دهد ارزش بالایی دارد. در پروژه‌های تیمی معمولاً revert امن‌تر است چون تاریخچه را بازنویسی نمی‌کند. مسیر کامل این حوزه را در Git و راهنمای عمومی دستورات پرکاربرد Git می‌توانید دنبال کنید.

Cheat Sheet حل تعارض

حل تعارض بخشی از Git است که کمترین تکرار را دارد و به همین دلیل بیشترین فراموش‌شدگی. Cheat Sheet این حوزه باید مراحل دقیق حل تعارض را نشان دهد: مشاهده‌ی فایل‌های دارای تعارض با git status باز کردن فایل و ویرایش بخش‌های متعارض افزودن فایل اصلاح‌شده با git add ادامه‌ی ادغام با git merge --continue یا git rebase --continue.

در تجربه‌ی خودم اکثر توسعه‌دهندگان این مراحل را در حافظه نگه نمی‌دارند چون به‌ندرت تکرار می‌شوند. Cheat Sheet ای که این مراحل را به‌صورت گام‌به‌گام نشان دهد یکی از باارزش‌ترین بخش‌های Cheat Sheet Git است. مسیر کامل این حوزه در حل تعارض در Git آمده است.

Cheat Sheet دستورات پیشرفته

دستورات پیشرفته Git برای توسعه‌دهندگانی است که در پروژه‌های جدی کار می‌کنند. Cheat Sheet این حوزه باید پوشش دهد: git rebase برای بازنویسی تاریخچه git cherry-pick برای انتقال یک commit خاص git stash برای ذخیره‌ی موقت تغییرات و git bisect برای یافتن commit معیوب با جست‌وجوی دودویی.

در تجربه‌ی خودم git stash بیشترین کاربرد روزمره را در این دسته دارد. وقتی وسط یک feature هستید و باید سریع به یک شاخه‌ی دیگر سوییچ کنید stash بهترین راه است. مسیر کامل این حوزه در راهنمای حرفه‌ای کار با هوک‌های وردپرس و راهنمای عمومی Git آمده است.

معیارهای انتخاب Cheat Sheet معتبر

Cheat Sheet های Git در اینترنت بسیارند اما کیفیتشان متفاوت است. پنج معیار در تجربه‌ی خودم Cheat Sheet معتبر را از نامعتبر جدا می‌کند.

  1. پوشش حل تعارض: Cheat Sheet ای که مراحل حل تعارض را نشان ندهد ناقص است.
  2. تفکیک دستورات امن و پرخطر: Cheat Sheet معتبر در کنار دستورات پرخطر مثل reset --hard هشدار می‌گذارد.
  3. ساختار جدول و فهرست: Cheat Sheet باید فشرده و قابل اسکن باشد نه پاراگراف‌های بلند.
  4. به‌روز بودن: Git در سال‌های اخیر دستور restore و switch اضافه کرده که Cheat Sheet قدیمی پوشش نمی‌دهد.
  5. پوشش سناریوهای واقعی: Cheat Sheet ای که فقط فهرست دستورات باشد کم‌ارزش است. Cheat Sheet ای که سناریوهای واقعی مثل بازگردانی commit اشتباه را نشان دهد ارزش بالایی دارد.

این معیارها را می‌توانید روی هر Cheat Sheet ای اعمال کنید. اگر بیش از دو معیار را پاس نکرد انتخاب بعدی را جدی بگیرید. مسیر مشابه در انتخاب Cheat Sheet های دیگر زبان‌ها را در Cheat Sheet های PHP و Cheat Sheet های MySQL نوشته‌ام.

ساخت Cheat Sheet شخصی Git

Cheat Sheet شخصی Git مفیدتر از Cheat Sheet عمومی است چون دقیقاً نیازهای شما را پوشش می‌دهد. در تجربه‌ی خودم ساخت آن چهار مرحله دارد.

  1. شروع با ساختار عمومی: یک Cheat Sheet عمومی معتبر را به‌عنوان ساختار شروع انتخاب کنید.
  2. حذف دستورات بلد: دستورات پایه‌ای که از حفظ هستید حذف کنید. Cheat Sheet شخصی باید فقط نکات فراموش‌شدنی باشد.
  3. افزودن alias شخصی: aliasهایی که در پروفایل ترمینال خود ساخته‌اید را یادداشت کنید. مثلاً یک alias سریع برای log خوانا یا برای status کوتاه.
  4. به‌روزرسانی ماهانه: هر ماه فایل را باز کنید و سناریوهای جدیدی که با آن‌ها مواجه شده‌اید اضافه کنید.

در تجربه‌ی خودم Cheat Sheet شخصی Git در سه فرمت مفید است: یک فایل Markdown در پوشه‌ی پروژه یک snippet در محیط کد ادیتور و یک فایل در اپ یادداشت گوشی برای مواقع ضروری. تفاوت این سه در دسترسی است نه در محتوا. برای توسعه‌دهنده‌ای که با وردپرس کار می‌کند Cheat Sheet شخصی Git اغلب با aliasهای مخصوص workflow وردپرس پر می‌شود. مسیر کامل این workflow را در گیت در وردپرس نوشته‌ام.

اشتباهات رایج در استفاده از Cheat Sheet Git

  • اجرای reset --hard بدون درک: این دستور تغییرات را برای همیشه از بین می‌برد. Cheat Sheet خوب باید این را هشدار دهد.
  • استفاده از Cheat Sheet قدیمی: Cheat Sheet ای که پوشش دستور restore و switch نداشته باشد برای پروژه‌های امروز ناقص است.
  • نادیده گرفتن سناریوهای واقعی: Cheat Sheet فقط فهرست دستور نیست؛ باید بگوید در هر موقعیت کدام دستور امن است.
  • فقدان Cheat Sheet شخصی: اتکا فقط به Cheat Sheet عمومی بازدهی کمتری دارد چون aliasهای شخصی شما در آن نیست.
  • نبود مرجع حل تعارض: بخش حل تعارض مهم‌ترین بخش Cheat Sheet Git است و نباید نادیده گرفته شود.

اشتباهات مشابه در استفاده از Cheat Sheet های دیگر زبان‌ها را در Cheat Sheet های CSS و Cheat Sheet های JavaScript نوشته‌ام. برای مقایسه با فایل‌های مرجع دیگر نگاهی به Cheat Sheet های Python و Cheat Sheet های HTML بیندازید.

پرسش‌های پرتکرار درباره Cheat Sheet های Git

آیا Cheat Sheet Git برای مبتدی‌ها هم مفید است؟

برای مبتدی‌ها به‌عنوان مرجع بعد از یادگیری اولیه بله اما نه به‌عنوان جایگزین یادگیری. برای شروع آموزش Git از صفر را بخوانید و Cheat Sheet را کنار آن استفاده کنید.

کدام Cheat Sheet Git بهترین است؟

بهترین Cheat Sheet آن است که با workflow فعلی شما هماهنگ باشد. برای کار تیمی Cheat Sheet Branch و Remote. برای کار انفرادی Cheat Sheet پایه و بازگردانی. Cheat Sheet شخصی که با aliasهای خودتان پر شده باشد از همه مفیدتر است.

آیا Cheat Sheet جایگزین مستندات رسمی Git است؟

خیر. مستندات رسمی Git جامع و دقیق است. Cheat Sheet فقط یادآوری سریع است. برای پروژه‌های پیچیده باید به مستندات رسمی مراجعه کنید اما برای کار روزمره Cheat Sheet کافی است.

چطور Cheat Sheet شخصی Git بسازم؟

با یک Cheat Sheet عمومی معتبر شروع کنید و aliasهای شخصی خودتان را اضافه کنید. یک فایل Markdown در پوشه‌ی پروژه بهترین شروع است. سناریوهای واقعی مثل بازگردانی commit اشتباه را هم در آن اضافه کنید.

آیا برای پروژه‌های وردپرسی Cheat Sheet Git اختصاصی لازم است؟

بله. وردپرس محیط‌های مختلف لوکال استجینگ و پروداکشن دارد و انتقال تغییرات بین آن‌ها نیاز به دستورات خاص دارد. مسیر این workflow را در گیت در وردپرس نوشته‌ام.

آیا Cheat Sheet Git را باید چاپ کرد؟

برای توسعه‌دهنده‌ای که بیشتر وقت خود را در ترمینال می‌گذراند یک نسخه‌ی چاپی کنار میز مفید است چون دسترسی سریع‌تر از باز کردن فایل دارد. اگر بیشتر روی لپ‌تاپ کار می‌کنید نسخه‌ی دیجیتال کافی است.

چطور Cheat Sheet را به‌روز نگه دارم؟

یک عادت ماهانه بگذارید: هر ماه فایل را باز کنید و سناریوهای جدیدی که با آن‌ها مواجه شدید اضافه کنید. Git هم هر چند سال دستورات جدیدی مثل restore و switch اضافه می‌کند و Cheat Sheet باید هم‌راستا به‌روز شود.

Cheat Sheet و سرعت کار تیمی

Cheat Sheet های Git یک ابزار کوچک اما پرارزش در کار توسعه‌دهنده‌ها و تیم‌های فنی هستند. تفاوت یک تیم حرفه‌ای با یک تیم متوسط اغلب در سرعت حل تعارض و دقت بازگردانی تغییرات است و Cheat Sheet دقیقاً همین شکاف را پر می‌کند. یک فایل که با هر سناریوی جدید پر می‌شود بعد از یک سال به یک مرجع اختصاصی تبدیل می‌شود که در هیچ سایت یا کتاب دیگری پیدا نمی‌شود.

پیشنهاد عملی من: با یک Cheat Sheet عمومی معتبر از دستورات پایه و Branch شروع کنید و بعد آن را با سناریوهای واقعی پروژه‌های خودتان غنی کنید. سه ماه بعد این فایل به یکی از پرارزش‌ترین ابزارهای کار تیمی شما تبدیل می‌شود. اگر تجربه‌ی جالبی از Cheat Sheet شخصی Git دارید در دیدگاه‌ها به اشتراک بگذارید تا فهرست نکات کاربردی کامل‌تر شود. 🌿