شروع کار با گیت |‌ جلسه سوم | شاخه ها (branches)

شاخه ها - branchs
  • در صورتیکه جلسه دوم را مطالعه نکرده اید، اینجا کلیک کنید.
  • برای مطالعه جلسات آموزشی گیت اینجا کلیک کنید.

شاخه ها (Branches)

یک شاخه یک کپی از فایلهای مخزن ایجاد میکند زمانیکه شما شاخه را ایجاد میکنید. شما میتوانید بر روی این شاخه کار کنید بدون اینکه بر روی دیگر شاخه ها تاثیری داشته باشد. زمانیکه شما آماده اضافه کردن تغییراتتون در کد اصلی هستید، شما میتوانید این تغیرات را در شاخه پیش فرض ادغام (merge) کنید. بعنوان مثال شاخه main.
زمانی از شاخه ها استفاده کنید زمانیکه شما:

  • زمانیکه شما میخواهید یک کد را بعه پروژه اضافه کنید اما مطمئن نیستید که به خوبی کار کند.
  • در حال کار مشترک با دیگران بر روی پروژه هستید و نمیخواهید کار شما با دیگران قاطی شود.

یک شاخه جدید معمولا شاخه ویژگی نامیده میشود تا با شاخه پیش فرض متمایز شود.

ساخت شاخه

برای ساخت شاخه ویژگی از دستور زیر استفاده کنید:

git checkout -b name-of-branch

نام شاخه نمیتواند شامل فاصله یا کاراکترهای ویژه باشد. برای نام شاخه از حروف کوچک، عدد، خط تیره (-) و زیرخط (ـ) استفاده کنید.

تعویض به یک شاخه

همه کارها در گیت بر روی شاخه ها انجام میشود. شما میتوانید بین شاخه ها جابجا شوید تا حالت فایلها و کارهای انجام شده را در آن شاخه ببینید.
برای جابجایی بین شاخه های موجود از این دستور استفاده کتید:

git checkout name-of-branch

برای مثال برای رفتن به شاخه main اینگونه عمل میکنیم:

git checkout main

دیدن تغییرات

برای مشاهده تغییرات ایجاد بر روی کدها، از این کد استفاده کنید:

git diff

مشاهده فایلهایی که تغییر کرده اند

زمانیکه شما فایلی را اضافه میکنید، تغییر میدهید یا آن را حذف میکنید، گیت این تغییرات را میفهمد. برای مشاهده این تغییرات از این دستور استفاده کنید:

git status

اضافه کردن و ثبت تغییرات محلی

وقتی که شما از دستور git status استفاده میکنید، تغییرات محلی در خطوط قرمز نمایش داده میشوند. این تغییرات یا پوشه و فایل جدید هستند یا تغییرات هستند و یا فایل یا پوشه حذف شده اند.
۱. برای طبقه بندی کردن (stage) فایلها برای ثبت (commit) از این دستور استفاده کنید:
pre class=”highlight” dir=”ltr”>git add file-name OR folder-name>

۲. مرحله اول را برای همه فایلها اجرا کنید. یا از دستور git add . استفاده کنید.
۳. فایلهای طبقه بندی شده را تایید کنید:

git status

الان تغییرات در خطوط سبز نشان داده میشوند.
۴. برای ثبت فایلهای طبقه بندی شده از این دستور استفاده کنید (commit staged files):

git commit -m "COMMENT TO DESCRIBE THE INTENTION OF THE COMMIT"

طبقه بندی و ثبت همه تغییرات

بعنوان یک میانبر، شما میتوانید با دستور زیر همه تغییرات را طبقه بندی و ثبت کنید:

git commit -a -m "COMMENT TO DESCRIBE THE INTENTION OF THE COMMIT"

ارسال همه تغییرات به gitlab.com

برای push کردن همه تغییرات محلی بر روی مخزن دور دست، از این دستور استفاده کنید:

git push remote name-of-branch

برای مثال، شما میخواهید تغییرات محلی خود را بر روی شاخه main بر روی origin remote ارسال کنید:

git push origin main

بعضی وقت ها گیت اجازه push کردن را نمیدهد، در اینجا میتوانید از force-push استفاده کنید. (برای مطالعه اینجا کلیک کنید.)

حذف همه تغییرات در شاخه

برای نادیده گرفتن همه تغییرات در فایلهای رهگیری شده از دستور زیر استفاده کنید:

git checkout .

این دستور تغییرات در فایلها را به حالت قبل برمیگرداند و کاری با فایلها ندارد. همچنین فایلهای رهگیری نشده (جدید) تغییری نمیکنند.

خارج کردن همه تغییرات از حوزه فایلهای دسته بندی شده

گاهی برخی دستورات را طبقه بندی (stage) کرده ایم (به عبارتی دستور git add را برای فایل تغییر یافته اجرا کرده ایم). اما به دلایلی از اینکار منصرف میشویم. برای خارج کردن فایلها از حالت طبقه بندی شده (unstage)، از این دستور استفاده کنید:

git reset

برگرداندن آخرین ثبت (commit)

برای برگرداندن آخرین ثبت از دستور زیر استفاده کنید:

git reset HEAD~1

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

ادغام یک شاخه با شاخه پیش فرض

زمانیکه شما آماده هستید تا تغییرات خودتان را در شاخه پیش فرض اضافه کنید، این دستورات را برای ادغام استفاده کنید:

git checkout default-branch
git merge feature-branch

در گیت لب عموما از رابطه کاربری برای درخواست ادغام استفاده میکنند. (اینجا کلیک کنید).

1 دیدگاه برای “شروع کار با گیت |‌ جلسه سوم | شاخه ها (branches)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *