پرش به محتوای اصلی
صفحه اصلی وبلاگ برنامه‌نویسی و توسعه وب آموزش کامل Git و GitHub برای برنامه‌نویسان مبتدی؛ از صفر تا حرفه‌ای

آموزش کامل Git و GitHub برای برنامه‌نویسان مبتدی؛ از صفر تا حرفه‌ای

تحریریه تولیاک
۱۴۰۵/۰۲/۱۷
18 دقیقه مطالعه
185 بازدید
0 نظر
آموزش کامل Git و GitHub برای برنامه‌نویسان مبتدی؛ از صفر تا حرفه‌ای

خلاصه: در این آموزش جامع و گام‌به‌گام، شما با مفاهیم پایه‌ای و پیشرفته‌ی Git و GitHub آشنا می‌شوید. از نصب گیت و تنظیمات اولیه گرفته تا ایجاد مخزن، ثبت تغییرات، شاخه‌بندی، ادغام، کار با مخازن راه دور، ارسال و دریافت کد، درخواست‌های ادغام (Pull Request) و بهترین شیوه‌های همکاری تیمی را فرا خواهید گرفت. این راهنما مخصوص برنامه‌نویسان مبتدی طراحی شده و تمامی مباحث با مثال‌های عملی و دستورات قابل اجرا همراه است. پس از مطالعه‌ی این آموزش، شما قادر خواهید بود پروژه‌های نرم‌افزاری خود را به‌صورت حرفه‌ای مدیریت کرده و در تیم‌های برنامه‌نویسی با اطمینان کامل مشارکت نمایید.


مقدمه‌ای بر کنترل نسخه و اهمیت آن

اگر به تازگی وارد دنیای برنامه‌نویسی شده‌اید، احتمالاً با چالش مدیریت تغییرات کد مواجه شده‌اید. تصور کنید روی یک پروژه کار می‌کنید و پس از چندین ساعت کدنویسی، متوجه می‌شوید که تغییرات اخیر باعث بروز خطا شده و نمی‌دانید دقیقاً کدام بخش را باید به حالت قبل برگردانید. اینجاست که سیستم‌های کنترل نسخه (Version Control Systems) به کمک شما می‌آیند. کنترل نسخه به شما امکان می‌دهد هر تغییر در فایل‌های پروژه را ثبت کنید، به نسخه‌های قبلی بازگردید، تاریخچه‌ی کامل تغییرات را مشاهده نمایید و با سایر توسعه‌دهندگان به‌صورت هماهنگ همکاری کنید. بدون یک سیستم کنترل نسخه، توسعه‌ی نرم‌افزار به‌سرعت به هرج‌ومرج تبدیل می‌شود.

در میان تمام سیستم‌های کنترل نسخه موجود، Git بدون شک محبوب‌ترین و پرکاربردترین آن‌هاست. گیت یک سیستم کنترل نسخه‌ی توزیع‌شده (Distributed) است، به این معنا که هر توسعه‌دهنده یک نسخه‌ی کامل از مخزن را روی سیستم خود دارد. این ویژگی باعث می‌شود سرعت عملیات بسیار بالا باشد و حتی بدون اتصال به اینترنت نیز بتوانید به کار خود ادامه دهید. گیت توسط لینوس توروالدز، خالق سیستم‌عامل لینوکس، در سال ۲۰۰۵ ساخته شد و از آن زمان تاکنون به استاندارد طلایی صنعت نرم‌افزار تبدیل شده است.


گیت (Git) چیست و چگونه کار می‌کند؟

گیت یک نرم‌افزار متن‌باز و رایگان است که تغییرات فایل‌ها را در طول زمان دنبال می‌کند. برخلاف سیستم‌های قدیمی‌تر که تغییرات را به‌صورت فایل‌به‌فایل ذخیره می‌کردند، گیت از یک ساختار عکس‌فوری (Snapshot) استفاده می‌کند. هر بار که شما تغییری را ثبت می‌کنید (Commit)، گیت یک عکس فوری از وضعیت تمام فایل‌های پروژه در آن لحظه ذخیره می‌کند. اگر فایلی تغییر نکرده باشد، گیت به‌جای ذخیره‌ی مجدد آن، تنها یک ارجاع به نسخه‌ی قبلی ایجاد می‌کند. این روش باعث می‌شود گیت بسیار سریع و کم‌حجم عمل کند.

گیت دارای سه ناحیه‌ی اصلی است: دایرکتوری کاری (Working Directory) که همان پوشه‌ی پروژه روی سیستم شماست، ناحیه‌ی آماده‌سازی (Staging Area) که تغییرات را قبل از ثبت نهایی در خود نگه می‌دارد، و مخزن محلی (Local Repository) که تاریخچه‌ی کامل پروژه در آن ذخیره می‌شود. درک این سه ناحیه برای استفاده‌ی صحیح از گیت ضروری است. فرآیند معمول کار با گیت به این صورت است: ابتدا فایل‌ها را در دایرکتوری کاری ویرایش می‌کنید، سپس تغییرات مورد نظر را به ناحیه‌ی آماده‌سازی اضافه می‌کنید، و در نهایت آن‌ها را با یک پیام توصیفی در مخزن محلی ثبت می‌نمایید.


نصب و راه‌اندازی گیت

برای شروع کار با گیت، ابتدا باید آن را روی سیستم خود نصب کنید. نصب گیت بسیار ساده است و برای تمام سیستم‌عامل‌های اصلی نسخه‌ی مناسب وجود دارد. در سیستم‌عامل ویندوز، می‌توانید نصب‌کننده‌ی رسمی را از وب‌سایت git-scm.com دانلود کرده و مانند هر نرم‌افزار دیگری نصب کنید. در سیستم‌عامل مک، گیت معمولاً به‌صورت پیش‌فرض نصب شده است، اما می‌توانید با نصب Xcode Command Line Tools یا از طریق Homebrew آخرین نسخه را دریافت کنید. در لینوکس نیز با استفاده از مدیر بسته‌ی توزیع خود (مانند apt برای اوبونتو یا dnf برای فدورا) می‌توانید گیت را نصب نمایید.

پس از نصب، پنجره‌ی ترمینال (Command Prompt در ویندوز یا Terminal در مک و لینوکس) را باز کنید و دستور زیر را اجرا نمایید تا از نصب صحیح گیت اطمینان حاصل کنید:

git --version

خروجی این دستور باید نسخه‌ی نصب‌شده‌ی گیت را نمایش دهد، برای مثال: git version 2.42.0. حالا باید تنظیمات اولیه‌ی گیت را انجام دهید. مهم‌ترین تنظیمات شامل نام کاربری و ایمیل شماست که در تاریخچه‌ی commitها ثبت می‌شود. دستورات زیر را با نام و ایمیل خود اجرا کنید:

git config --global user.name "نام و نام خانوادگی شما"
git config --global user.email "your.email@example.com"

با این کار، هویت شما برای تمام مخازن گیت روی سیستم تنظیم می‌شود. می‌توانید با دستور git config --list تمام تنظیمات را مشاهده کنید.


ایجاد اولین مخزن گیت

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

mkdir my-first-project
cd my-first-project
git init

خروجی دستور git init چیزی شبیه به این خواهد بود: Initialized empty Git repository in /path/to/my-first-project/.git/. اکنون می‌توانید فایل‌های پروژه‌ی خود را در این پوشه ایجاد کنید. برای بررسی وضعیت مخزن در هر لحظه، از دستور git status استفاده کنید که فایل‌های تغییر یافته، فایل‌های آماده‌شده برای ثبت و فایل‌های ردیابی‌نشده را نشان می‌دهد.


ثبت تغییرات با Commit

فرض کنید یک فایل به نام index.html در پوشه‌ی پروژه ایجاد کرده‌اید. با اجرای git status خواهید دید که این فایل در بخش Untracked files (فایل‌های ردیابی‌نشده) قرار دارد. برای اینکه گیت این فایل را دنبال کند، باید آن را به ناحیه‌ی آماده‌سازی اضافه کنید. از دستور git add برای این کار استفاده می‌شود:

git add index.html

اگر می‌خواهید تمام فایل‌های تغییر یافته را یکجا به ناحیه‌ی آماده‌سازی اضافه کنید، می‌توانید از git add . استفاده کنید (نقطه به معنی تمام فایل‌های موجود در پوشه‌ی جاری است). پس از آماده‌سازی، نوبت به ثبت تغییرات در مخزن با دستور git commit می‌رسد. هر commit باید یک پیام توصیفی داشته باشد که توضیح می‌دهد چه تغییراتی انجام شده است:

git commit -m "ایجاد فایل index.html با ساختار اولیه"

پیام commit باید کوتاه، مفید و توصیفی باشد. عادت کنید پیام‌هایی بنویسید که چند ماه بعد هم بتوانید بفهمید چه تغییری انجام داده‌اید. برای مشاهده‌ی تاریخچه‌ی commitها از دستور git log استفاده کنید که لیست تمام commitها را به همراه نویسنده، تاریخ و پیام نمایش می‌دهد. با اضافه کردن فلگ --oneline می‌توانید خلاصه‌ای فشرده از تاریخچه را ببینید.


شاخه‌بندی (Branching) در گیت

یکی از قدرتمندترین ویژگی‌های گیت، شاخه‌بندی است. شاخه‌ها به شما امکان می‌دهند بدون تأثیرگذاری روی کد اصلی، ویژگی‌های جدید را توسعه دهید، باگ‌ها را برطرف کنید یا آزمایش‌های مختلف انجام دهید. شاخه‌ی پیش‌فرض گیت معمولاً main یا master نام دارد. برای ایجاد یک شاخه‌ی جدید از دستور git branch استفاده کنید:

git branch feature-login

این دستور یک شاخه‌ی جدید به نام feature-login ایجاد می‌کند، اما شما همچنان روی شاخه‌ی اصلی هستید. برای جابه‌جایی به شاخه‌ی جدید از git checkout یا git switch استفاده کنید:

git checkout feature-login
# یا در نسخه‌های جدیدتر گیت:
git switch feature-login

همچنین می‌توانید با یک دستور هم شاخه را ایجاد کنید و هم به آن سوئیچ نمایید: git checkout -b feature-login یا git switch -c feature-login. اکنون هر commitی که انجام دهید روی شاخه‌ی feature-login ثبت می‌شود و شاخه‌ی اصلی دست‌نخورده باقی می‌ماند. برای مشاهده‌ی لیست تمام شاخه‌ها از git branch بدون هیچ آرگومانی استفاده کنید. شاخه‌ی فعلی با یک ستاره مشخص می‌شود.


ادغام شاخه‌ها با Merge

پس از اینکه کار روی یک شاخه‌ی فرعی به پایان رسید، نوبت به ادغام (Merge) آن با شاخه‌ی اصلی می‌رسد. برای این کار، ابتدا به شاخه‌ی مقصد (مثلاً main) سوئیچ کنید و سپس دستور merge را با نام شاخه‌ی مبدأ اجرا نمایید:

git checkout main
git merge feature-login

گیت به‌صورت خودکار تغییرات را با یکدیگر ترکیب می‌کند. اگر تغییرات دو شاخه با یکدیگر تداخل (Conflict) نداشته باشند، ادغام با موفقیت انجام می‌شود و یک commit ادغام ایجاد می‌گردد. اما اگر همان بخش از یک فایل در هر دو شاخه تغییر کرده باشد، تداخل ادغام رخ می‌دهد و گیت از شما می‌خواهد به‌صورت دستی تصمیم بگیرید کدام تغییرات باقی بمانند. در این حالت، فایل‌های دارای تداخل با نشانگرهای مخصوص (<<<<<<< ، ======= ، >>>>>>>) علامت‌گذاری می‌شوند. پس از رفع تداخل‌ها، فایل‌ها را دوباره add و commit کنید تا فرآیند ادغام تکمیل شود.


معرفی گیت‌هاب (GitHub)

گیت‌هاب یک پلتفرم میزبانی کد مبتنی بر وب است که از گیت برای کنترل نسخه استفاده می‌کند. گیت‌هاب به شما امکان می‌دهد مخازن گیت خود را روی سرورهای ابری ذخیره کنید، با دیگران به اشتراک بگذارید و در پروژه‌های متن‌باز همکاری نمایید. گیت‌هاب در سال ۲۰۰۸ تأسیس شد و در سال ۲۰۱۸ توسط مایکروسافت خریداری گردید. امروزه گیت‌هاب با بیش از ۱۰۰ میلیون توسعه‌دهنده، بزرگ‌ترین جامعه‌ی برنامه‌نویسی جهان را در خود جای داده است.

علاوه بر میزبانی مخازن، گیت‌هاب امکانات فراوانی مانند درخواست‌های ادغام (Pull Requests)، بررسی کد (Code Review)، مدیریت پروژه (Projects)، گزارش باگ (Issues)، مستندسازی با ویکی، و یکپارچه‌سازی مداوم (GitHub Actions) را فراهم می‌کند. برای شروع کار با گیت‌هاب، کافی است در وب‌سایت github.com یک حساب کاربری رایگان ایجاد کنید.


اتصال گیت محلی به گیت‌هاب

برای اتصال مخزن محلی خود به گیت‌هاب، ابتدا باید یک مخزن جدید روی گیت‌هاب ایجاد کنید. پس از ورود به حساب کاربری، روی دکمه‌ی New Repository کلیک کنید، یک نام برای مخزن انتخاب نمایید و آن را ایجاد کنید. گیت‌هاب آدرس مخزن راه دور (Remote URL) را در اختیار شما قرار می‌دهد. این آدرس می‌تواند به صورت HTTPS یا SSH باشد. برای مبتدیان، استفاده از HTTPS ساده‌تر است. با دستور زیر مخزن راه دور را به مخزن محلی اضافه کنید:

git remote add origin https://github.com/username/repository-name.git

در این دستور، origin نام پیش‌فرضی است که به مخزن راه دور داده می‌شود (می‌توانید هر نام دیگری انتخاب کنید، اما origin استاندارد است). با دستور git remote -v می‌توانید آدرس مخازن راه دور متصل‌شده را مشاهده کنید. اکنون ارتباط بین مخزن محلی و گیت‌هاب برقرار شده است.


ارسال و دریافت کد با Push و Pull

برای ارسال commitهای محلی به گیت‌هاب از دستور git push استفاده می‌شود. اولین باری که push می‌کنید، باید شاخه‌ی upstream را مشخص کنید:

git push -u origin main

فلگ -u باعث می‌شود شاخه‌ی محلی main با شاخه‌ی راه دور origin/main مرتبط شود و در pushهای بعدی تنها با نوشتن git push کافی باشد. برای دریافت آخرین تغییرات از گیت‌هاب، از دستور git pull استفاده کنید. این دستور تغییرات را از مخزن راه دور دریافت کرده و با شاخه‌ی محلی ادغام می‌کند:

git pull origin main

اگر فقط می‌خواهید تغییرات راه دور را ببینید اما هنوز ادغام نکنید، می‌توانید از git fetch استفاده کنید. این دستور اطلاعات را از راه دور دریافت می‌کند اما آن را با شاخه‌ی محلی ادغام نمی‌کند و به شما فرصت می‌دهد ابتدا تغییرات را بررسی نمایید.


کلون کردن یک مخزن (Clone)

اگر می‌خواهید یک کپی کامل از یک مخزن موجود روی گیت‌هاب را روی سیستم خود داشته باشید، از دستور git clone استفاده کنید. این دستور تمام فایل‌ها، تاریخچه، شاخه‌ها و تنظیمات مخزن راه دور را دانلود کرده و یک مخزن محلی کامل می‌سازد. برای کلون کردن، به صفحه‌ی مخزن در گیت‌هاب بروید، دکمه‌ی Code را کلیک کنید و آدرس HTTPS یا SSH را کپی نمایید:

git clone https://github.com/username/repository-name.git

این دستور یک پوشه‌ی جدید با نام مخزن ایجاد می‌کند و تمام محتویات آن را درونش قرار می‌دهد. پس از کلون کردن، می‌توانید مانند یک مخزن معمولی با آن کار کنید، تغییرات دهید، commit کنید و در نهایت با push به گیت‌هاب ارسال نمایید (البته به شرطی که دسترسی نوشتن روی مخزن را داشته باشید).


درخواست ادغام (Pull Request)

Pull Request یا به اختصار PR، یکی از مهم‌ترین مفاهیم در گیت‌هاب و همکاری تیمی است. زمانی که شما روی یک شاخه‌ی فرعی تغییراتی ایجاد می‌کنید و می‌خواهید آن‌ها را با شاخه‌ی اصلی ادغام کنید، یک Pull Request ایجاد می‌نمایید. این کار به سایر اعضای تیم امکان می‌دهد کد شما را بررسی (Review) کنند، نظرات خود را ثبت نمایند و در صورت نیاز درخواست تغییر دهند. این فرآیند تضمین می‌کند که کد باکیفیت وارد شاخه‌ی اصلی شود.

برای ایجاد یک Pull Request، ابتدا شاخه‌ی خود را به گیت‌هاب push کنید، سپس به صفحه‌ی مخزن در گیت‌هاب بروید. گیت‌هاب معمولاً به‌صورت خودکار پیشنهاد ایجاد Pull Request را نمایش می‌دهد. روی دکمه‌ی Compare & pull request کلیک کنید، یک عنوان و توضیح برای PR بنویسید و آن را ارسال کنید. پس از تأیید توسط بازبین‌ها، می‌توان PR را ادغام کرد. گیت‌هاب گزینه‌های مختلفی برای ادغام دارد: ادغام معمولی (Merge Commit)، ادغام فشرده (Squash and Merge) که تمام commitها را در یک commit خلاصه می‌کند، و بازنشانی (Rebase and Merge).


دستورات پرکاربرد گیت

در جدول زیر، مهم‌ترین و پرکاربردترین دستورات گیت به همراه توضیح فارسی آورده شده است. تسلط بر این دستورات، شما را در استفاده‌ی روزمره از گیت بسیار توانمند می‌سازد:

دستور توضیح
git init ایجاد یک مخزن جدید گیت در پوشه‌ی جاری
git clone [url] کلون کردن یک مخزن از راه دور
git status نمایش وضعیت فایل‌های تغییر یافته و آماده‌نشده
git add [file] اضافه کردن فایل به ناحیه‌ی آماده‌سازی
git commit -m "پیام" ثبت تغییرات آماده‌شده در مخزن
git log مشاهده‌ی تاریخچه‌ی commitها
git branch نمایش لیست شاخه‌ها
git checkout [branch] سوئیچ کردن به یک شاخه‌ی دیگر
git merge [branch] ادغام شاخه‌ی مشخص‌شده با شاخه‌ی فعلی
git push ارسال commitهای محلی به مخزن راه دور
git pull دریافت و ادغام تغییرات از مخزن راه دور
git diff نمایش تفاوت‌های بین فایل‌های تغییر یافته
git stash ذخیره‌سازی موقت تغییرات برای استفاده‌ی بعدی
git reset بازگردانی تغییرات (با احتیاط استفاده شود)
git remote -v نمایش آدرس مخازن راه دور متصل

بهترین شیوه‌های کار با گیت و گیت‌هاب

برای اینکه تجربه‌ی بهتری در کار با گیت و گیت‌هاب داشته باشید، رعایت چند اصل ساده اما مهم توصیه می‌شود. نخست، پیام‌های commit معنادار بنویسید. یک پیام خوب باید توضیح دهد چه تغییری انجام شده و چرا. از نوشتن پیام‌های مبهم مانند "تغییرات جزئی" یا "آپدیت" خودداری کنید.

دوم، commitهای کوچک و متمرکز ایجاد کنید. هر commit باید یک تغییر منطقی واحد را شامل شود. اگر چندین تغییر نامرتبط انجام داده‌اید، آن‌ها را در commitهای جداگانه ثبت کنید. این کار بررسی تاریخچه و یافتن باگ‌ها را بسیار آسان‌تر می‌کند. سوم، قبل از شروع کار روی یک ویژگی جدید، حتماً یک شاخه‌ی جدید ایجاد کنید و هرگز مستقیماً روی شاخه‌ی main کدنویسی نکنید.

چهارم، به‌طور منظم pull کنید تا مخزن محلی شما با راه دور همگام بماند. این کار از بروز تداخل‌های بزرگ در آینده جلوگیری می‌کند. پنجم، قبل از push کردن، تغییرات خود را با git diff مرور کنید تا مطمئن شوید کد ناخواسته یا فایل‌های موقتی را ارسال نمی‌کنید. ششم، یک فایل .gitignore در ریشه‌ی پروژه ایجاد کنید تا فایل‌ها و پوشه‌هایی که نباید در گیت ذخیره شوند (مانند پوشه‌ی node_modules، فایل‌های env. و فایل‌های کامپایل‌شده) را مشخص نمایید.


فایل gitignore. و اهمیت آن

فایل .gitignore یک فایل متنی ساده است که به گیت می‌گوید کدام فایل‌ها و پوشه‌ها را نادیده بگیرد. این فایل را در ریشه‌ی مخزن خود ایجاد کنید و الگوهای فایل‌هایی که نمی‌خواهید ردیابی شوند را در آن بنویسید. برای مثال، یک فایل .gitignore معمولی برای پروژه‌های جاوااسکریپت ممکن است چنین محتوایی داشته باشد:

node_modules/
.env
dist/
build/
*.log
.DS_Store

استفاده از .gitignore از اضافه شدن تصادفی فایل‌های حساس (مانند رمزهای عبور و کلیدهای API) به مخزن جلوگیری می‌کند و حجم مخزن را نیز کاهش می‌دهد. گیت‌هاب یک مجموعه از قالب‌های آماده‌ی .gitignore برای زبان‌ها و فریم‌ورک‌های مختلف ارائه می‌دهد که می‌توانید هنگام ایجاد مخزن جدید از آن‌ها استفاده کنید.


حل تداخل‌های ادغام (Merge Conflicts)

تداخل ادغام زمانی رخ می‌دهد که گیت نتواند به‌صورت خودکار تغییرات دو شاخه را با هم ترکیب کند. این اتفاق معمولاً وقتی می‌افتد که دو نفر یک بخش از یک فایل را به شکل‌های متفاوتی ویرایش کرده باشند. هنگام بروز تداخل، گیت فایل‌های مشکل‌دار را با نشانگرهای مخصوص علامت‌گذاری می‌کند. با باز کردن فایل، چیزی شبیه به این می‌بینید:

<<<<<<< HEAD
کد موجود در شاخه‌ی فعلی
=======
کد موجود در شاخه‌ی در حال ادغام
>>>>>>> feature-branch

برای حل تداخل، باید فایل را ویرایش کنید، نشانگرها را حذف نمایید و تصمیم بگیرید کدام نسخه از کد باقی بماند (یا ترکیبی از هر دو). پس از ویرایش، فایل را با git add به ناحیه‌ی آماده‌سازی اضافه کرده و یک commit جدید ایجاد کنید. بسیاری از ویرایشگرهای مدرن کد مانند VS Code ابزارهای بصری برای حل تداخل ارائه می‌دهند که فرآیند را بسیار ساده‌تر می‌کنند. اگر از تداخل‌ها مطمئن نیستید و می‌خواهید ادغام را لغو کنید، می‌توانید از git merge --abort استفاده کنید.


بازنشانی تغییرات با Reset و Revert

گاهی اوقات نیاز دارید تغییرات را به عقب برگردانید. دو دستور اصلی برای این کار وجود دارد: git reset و git revert. دستور git reset شاخه‌ی فعلی را به یک commit مشخص عقب می‌برد و بسته به فلگ استفاده‌شده، تغییرات را از ناحیه‌ی آماده‌سازی یا دایرکتوری کاری نیز حذف می‌کند. این دستور تاریخچه را بازنویسی می‌کند و در صورت push شدن قبلی، می‌تواند برای هم‌تیمی‌ها مشکل ایجاد کند.

در مقابل، git revert یک commit جدید ایجاد می‌کند که تغییرات یک commit مشخص را واگردانی می‌کند، بدون اینکه تاریخچه را تغییر دهد. این روش امن‌تر است و برای مخازن اشتراکی توصیه می‌شود. برای مثال، اگر commit با شناسه‌ی abc123 مشکل‌ساز بوده، می‌توانید با git revert abc123 آن را واگردانی کنید. همواره در استفاده از git reset روی مخازن اشتراکی احتیاط کنید و git revert را به عنوان گزینه‌ی ایمن‌تر در نظر داشته باشید.


ذخیره‌سازی موقت با Stash

فرض کنید در میانه‌ی کار روی یک ویژگی جدید هستید و تغییرات شما هنوز برای commit آماده نیست، اما ناگهان نیاز فوری به سوئیچ کردن به شاخه‌ی دیگر برای رفع یک باگ پیدا می‌کنید. در این شرایط، دستور git stash به کمک شما می‌آید. این دستور تمام تغییرات ثبت‌نشده (هم در دایرکتوری کاری و هم در ناحیه‌ی آماده‌سازی) را به‌طور موقت ذخیره می‌کند و دایرکتوری کاری را به وضعیت آخرین commit برمی‌گرداند:

git stash

پس از اتمام کار فوری، می‌توانید با git stash pop تغییرات ذخیره‌شده را بازیابی کنید. برای مشاهده‌ی لیست stashها از git stash list استفاده کنید. همچنین می‌توانید به stashها نام توصیفی بدهید: git stash push -m "تغییرات نیمه‌تمام بخش ورود کاربر". stash یک ابزار بسیار مفید برای مدیریت موقت تغییرات است و هر برنامه‌نویسی باید با آن آشنا باشد.


همکاری تیمی در گیت‌هاب

گیت‌هاب ابزارهای متعددی برای تسهیل همکاری تیمی ارائه می‌دهد. یکی از مهم‌ترین مفاهیم، Fork (انشعاب) است. Fork کردن یک مخزن به معنی ایجاد یک کپی مستقل از آن در حساب کاربری شماست. این قابلیت به‌ویژه در پروژه‌های متن‌باز کاربرد دارد: شما مخزن اصلی را Fork می‌کنید، تغییرات خود را در Fork اعمال می‌نمایید و سپس یک Pull Request به مخزن اصلی ارسال می‌کنید. این روش به نگهدارندگان پروژه اجازه می‌دهد بدون دادن دسترسی مستقیم نوشتن، مشارکت‌های جامعه را بپذیرند.

گیت‌هاب همچنین دارای Issues برای گزارش باگ‌ها، درخواست ویژگی‌های جدید و بحث‌های فنی است. می‌توانید Issues را به افراد تخصیص دهید، برچسب‌گذاری کنید و با commitها پیوند دهید. Projects یا همان تابلوهای کانبان گیت‌هاب به شما امکان مدیریت وظایف را به سبک Trello می‌دهد. Actions نیز برای خودکارسازی فرآیندهای یکپارچه‌سازی و استقرار مداوم (CI/CD) استفاده می‌شود و می‌تواند تست‌ها را اجرا کرده و کد را مستقر نماید.


نکات تکمیلی برای مبتدیان

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

منابع آنلاین فراوانی برای یادگیری بیشتر وجود دارد. مستندات رسمی گیت در git-scm.com/doc یکی از بهترین مراجع است. همچنین گیت‌هاب یک راهنمای تعاملی به نام GitHub Skills دارد که مفاهیم را به‌صورت عملی آموزش می‌دهد. به‌خاطر داشته باشید که گیت یک مهارت ضروری برای هر برنامه‌نویسی است و تسلط بر آن، شما را به یک توسعه‌دهنده‌ی حرفه‌ای‌تر تبدیل می‌کند. کارفرمایان همواره به دنبال برنامه‌نویسانی هستند که با گیت و گردش کار تیمی آشنا باشند.

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


جمع‌بندی و گام‌های بعدی

در این آموزش جامع، از مفاهیم پایه‌ای کنترل نسخه شروع کردیم، با نصب و راه‌اندازی گیت آشنا شدیم، دستورات اصلی مانند init، add، commit، branch، merge، push و pull را فرا گرفتیم، با گیت‌هاب و امکانات آن آشنا شدیم و بهترین شیوه‌های همکاری تیمی را مرور کردیم. اکنون شما دانش و ابزارهای لازم برای مدیریت حرفه‌ای پروژه‌های نرم‌افزاری خود را در اختیار دارید.

گام بعدی شما می‌تواند یادگیری مفاهیم پیشرفته‌تری مانند Rebase، Cherry-pick، Git Hooks و GitHub Actions باشد. همچنین آشنایی با گردش‌های کاری محبوب مانند Git Flow و Trunk-Based Development به شما در مدیریت پروژه‌های بزرگ‌تر کمک خواهد کرد. به یاد داشته باشید که گیت یک ابزار قدرتمند است و هرچه بیشتر با آن کار کنید، ماهرتر خواهید شد. موفق باشید و کدنویسی شاد!

تحریریه تولیاک

تیم تولید محتوای تولیاک ؛ آموزش و نکات کاربردی برای ابزارهای آنلاین، تبدیل فایل و بهینه‌سازی.

اشتراک‌گذاری این مطلب

این مقاله را با دوستان خود به اشتراک بگذارید

لینک این صفحه با یک کلیک در حافظه کپی می‌شود.

نظرات کاربران (0)

ارسال نظر جدید

نظر شما پس از تایید نمایش داده می‌شود.