Git checkout چیست؟ آموزشی جامع
در حوزه توسعه نرمافزار، کنترل نسخه بسیار مهم است و Git بهعنوان یک سیستم کنترل نسخه توزیعشده، امکان جابجایی بین شاخهها و بازیابی نسخههای خاص فایلها را فراهم میکند. اما Git checkout چیست؟ دستور چکاوت در گیت به ما این امکان را میدهد که بین نسخههای مختلف یک پروژه جابجا شویم. مثلاً، اگر بخواهیم تغییراتی که در فایلها (files)، نقاط مشخصی در زمان (commits)، یا شاخههای مختلف (branches) ایجاد شدهاند را ببینیم یا با آنها کار کنیم، از این دستور استفاده میکنیم.
بهعنوان مثال: git checkout به ما کمک میکند که به یک شاخه خاص برویم و تغییرات جدیدِ ایجادشده را در همان شاخه ذخیره کنیم. این کار باعث میشود که تاریخچه پروژه (project history) بهروز و منظم باقی بماند و ما همیشه بتوانیم به نسخههای قبلی برگردیم یا نسخههای جدید را ایجاد کنیم.
چک اوت برانچز (Checking out branches)
در بخش مقدمه گفتیم که git checkout چیست و اینکه این دستور به شما امکان میدهد که بین نسخههای مختلف پروژهتان که با دستور git branch ساختهاید، جابهجا شوید. وقتی یک شاخه را بررسی میکنید، فایلهای موجود در پوشه کاریتان به آخرین وضعیت ذخیرهشده در آن شاخه، بهروز میشوند و گیت هم تمام تغییرات جدید را در همان شاخه ثبت میکند.
ایجاد یک شاخه مجزا برای هر ویژگی جدید، نسبت به روش قدیمی SVN، تحول بزرگی است. این کار امکان آزمایش ایدههای تازه را بدون نگرانی از خراب کردن ویژگیهای فعلی فراهم میکند و به شما اجازه میدهد که به طور همزمان روی چندین ویژگی مختلف کار کنید. همچنین، شاخهها به همکاریِ گروهی در چندین پروژه کمک میکنند.
گاهی ممکن است دستور git checkout و git clone را با هم اشتباه بگیرید. اما، git clone برای دریافت کد از یک مخزن دور (remote repository) استفاده میشود، درحالیکه git checkout برای انتقال و کار با نسخههای مختلفِ کدی که در کامپیوتر خود دارید بهکار میرود.
استفاده از شاخههای موجود (Existing branches)
حالا سوال این است که منظور از Existing branches در Git checkout چیست. با فرض اینکه مخزنی که در آن کار میکنید، شامل شاخههای قبلی است، میتوانید با استفاده از دستور git checkout بین این شاخهها جابجا شوید. برای اطلاع از شاخههای موجود و نام شاخهی فعلی، دستور git branch را اجرا کنید.
مثال
git branch $
main
another_branch
feature_inprogress_branch
git checkout feature_inprogress_branch $
مثال بالا نشان میدهد چگونه با اجرای دستور git branch، فهرستی از شاخههای در دسترس را مشاهده کنید و به یک شاخه مشخص (در این مورد شاخه (feature_inprogress_branch، جابجا شوید.
شاخههای جدید (New branches) در Git checkout چیست؟
دستور git checkout با دستور git branch ارتباط تنگاتنگی دارد. برای شروع کار روی ویژگیهای جدید در پروژههای نرمافزاری، میتوانید از دستور git branch برای ساخت یک شاخه جدید استفاده کنید. بهعنوان مثال، با اجرای git branch new_branch، یک شاخه جدید به نام new_branch از شاخه اصلی میسازید. سپس، برای رفتن به شاخه تازهساز، دستور git checkout new_branch را به کار ببرید.
علاوهبر این، دستور git checkout یک گزینه -b دارد که امکان ساخت و انتقال خودکار به شاخه جدید را فراهم میکند. با استفاده از این گزینه، میتوانید به سرعت شاخهای جدید بسازید و به آن منتقل شوید.
git checkout -b <new-branch>
در مثال بالا، دستور git checkout با گزینه -b به طور همزمان شاخه جدیدی به نام <new-branch> ایجاد و به آن شاخه، جابجا میکند. گزینه -b گزینهای است که به گیت میگوید ابتدا دستور git branch و سپس دستور git checkout <new-branch> را اجرا کند.
git checkout -b <new-branch> <existing-branch>
به صورت پیشفرض، وقتی شما دستور git checkout -b را اجرا میکنید، یک شاخه جدید به نام new-branch براساس آخرین تغییرات (HEAD در گیت) ایجاد میشود. اما اگر بخواهید، میتوانید نام یک شاخه دیگر را هم به دستور اضافه کنید. در نمونهای که داده شده، اگر <existing-branch> را وارد کنید، new-branch براساس این شاخه موجود و نه آخرین تغییرات ساخته خواهد شد.
تغییر شاخهها (Switching branches)
تغییر دادن شاخهها کاری ساده است. با اجرای دستور زیر، HEAD به نوک شاخه (آخرین کامیتی که در آن شاخه انجام شده) <branchname> اشاره خواهد کرد.
git checkout <branchname>
گیت تاریخچهای از عملیاتهای checkout را در reflog نگهداری میکند. شما میتوانید با اجرای دستور git reflog، این تاریخچه را مشاهده کنید.
پیشنهاد مطالعه: آموزش آپلود فایل در گیت هاب در چند گام ساده (آموزش تصویری)
بررسی شاخهای از مخزن دور (Git checkout a remote branch)
تا اینجای مقاله متوجه شدیم که Git checkout چیست و اکنون میخواهیم بدانیم چطور یک شاخه از راه دور بررسی میشود. وقتی در یک تیم کار میکنید، اغلب از مخازن دوردست (remote repositories) برای ذخیرهسازی و مدیریت کدها استفاده میشود. این مخازن میتوانند روی سرورهای اینترنتی میزبانی شوند یا حتی نسخهای از کدِ روی کامپیوتر یکی از همکارانتان، باشند. هر مخزن دوردست شامل چندین شاخه است که نسخههای مختلفی از کد را نگهداری میکنند. برای کار کردن روی یک شاخه خاص از مخزن دوردست، باید اول محتویات آن شاخه را به کامپیوتر خودتان ازیابی (fetch) کنید.
git fetch –all
در نسخههای جدید گیت، شاخههای دوردست را میتوان مانند شاخههای محلی بررسی کرد.
git checkout <remotebranch>
در نسخههای قدیمیتر گیت، برای کار با شاخه دوردست، لازم است که یک شاخه جدید بر اساس آن ایجاد کنید.
git checkout -b <remotebranch> origin/<remotebranch>
علاوهبر این، شما میتوانید یک شاخه محلی جدید ایجاد کرده و آن را به آخرین کامیت شاخه دوردست بازنشانی کنید.
git checkout -b <branchname>
git reset –hard origin/<branchname>
دیگر دستورات مهم Git
بعد از اینکه متوجه شدیم که Git checkout چیست و کاربردش چیست، لازم دانستیم برخی دیگر از مهمترین دستورات و اصطلاحات مهم گیت را معرفی کنیم.
- Git merge branch: دستور git merge برای ادغام تغییرات از یک شاخه به شاخهای که در حال حاضر، روی آن کار میکنید استفاده میشود.
- Git branch: دستور Branch در گیت برای ایجاد، لیست کردن و حذف شاخهها به کار میرود.
- Git revert چیست: دستور git revert برای بازگرداندن تغییرات یک commit خاص بدون تغییر تاریخچه استفاده میشود. این دستور به جای حذف کامیت در گیت از تاریخچه پروژه، تغییرات آن را معکوس میکند.
- Git reset چیست: دستور git reset برای بازنشانی شاخه فعلی به یک commit خاص و حذف تغییرات بعد از آن commit استفاده میشود.
- Gitignore چیست: این یک فایل برای نادیدهگرفتن فایلهای خاص در پروژه استفاده میشود تا در commitها شامل نشوند.
سخن پایانی:
در این مقاله، گفتیم که git checkout چیست و به بررسی عمیقِ این دستور پرداختیم. نشان دادیم که چگونه میتوان به صورت عملی با این دستور کار کرد. همچنین، به معرفی برخی از مهمترین دستورات و اصطلاحات دیگر گیت از جمله merge branch، Git branch، Git revert ، Git reset، Gitignore و کار با GitHub پرداختیم. این دستورات، ابزارهای ضروری برای هر توسعهدهندهای هستند که میخواهد با مدیریت نسخههای نرمافزاری به شیوهای مؤثر برخورد کند.
پیشنهاد مطالعه: آموزش گیت هاب دسکتاپ – بررسی قابلیتها و کاربردهای این نسخه
آموزش گیت در مکتب خونه
مسیر تبدیل شدن به یک توسعهدهنده حرفهای، بدون دانش کافی از گیت، ناقص است. گیت، ابزاری قدرتمند برای کنترل نسخه و همکاری موثر در پروژههای نرمافزاری است. مکتبخونه با ارائه دورههای ویدئویی کاربردی آموزش برنامه نویسی و آموزش git، شما را برای رسیدن به این هدف همراهی میکند. از مبانی اولیه تا تکنیکهای پیشرفته مثلِ آموزش git branch، هر آنچه برای مسلط شدن به گیت نیاز دارید، در اختیارتان قرار میدهیم.