دانستن دستور Git مناسب برای کار در دست اغلب می تواند چالش برانگیز باشد. به خصوص زمانی که به کار خود پیچیدگی می‌دهید، مانند شاخه‌بندی Git.

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

شعبه‌ها به توسعه‌دهندگان اجازه می‌دهند تا روی ویژگی‌ها، مشکلات یا رفع اشکال‌های مختلف کار کنند، بدون اینکه بر اساس کد اصلی پروژه تأثیر بگذارند.

این آموزش شما را از طریق مجموعه ای از دستورات Git برای ایجاد، تعهد، ادغام و حذف شاخه ها راهنمایی می کند.

این آموزش فرض می‌کند که همانطور که در مقاله قبلی به آن پرداختم، شما یک درک مفهومی اولیه از شاخه‌بندی Git دارید.

همچنین می‌توانید ویدیوی مرتبط را در اینجا تماشا کنید که شامل نمایش انشعاب با استفاده از ادغام Git VS Code است.

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

نحوه ایجاد یک مخزن محلی

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

برای ایجاد یک مخزن محلی، مراحل زیر را دنبال کنید:

ابتدا ترمینال یا خط فرمان خود را باز کنید و به دایرکتوری که می خواهید پروژه خود را در آن ایجاد کنید بروید.

سپس با استفاده از دستور زیر یک مخزن جدید Git را مقداردهی اولیه کنید.

git init recipes

این دستور یک پوشه جدید برای پروژه ایجاد می کند که نام دارد recipes و یک مخزن جدید Git را در آن پوشه مقداردهی اولیه می کند.

فرآیند اولیه سازی یک a را ایجاد می کند .git پوشه ای در پوشه پروژه که فایل ها و داده ها را برای مخزن ذخیره می کند.

این فایل ممکن است به طور پیش فرض مخفی باشد. در مک یاب، استفاده کنید Command + Shift + . (period) تا فایل های مخفی ظاهر شوند. در ویندوز، از تب File Explorer View استفاده کنید و بررسی کنید Hidden items برای نمایش فایل های مخفی

هنگامی که یک مخزن جدید مقداردهی اولیه می شود، Git به طور خودکار یک شاخه اولیه جدید ایجاد می کند. بسته به تنظیمات Git شما، آن شاخه اولیه با نام های “main”، “master” یا چیزی مشابه ایجاد می شود.

به پوشه پروژه بروید:

cd recipes

پوشه پروژه پوشه کاری ماست. همه فایل‌های پروژه ما باید از این پوشه یا زیرپوشه‌های این پوشه ایجاد، به‌روزرسانی و اصلاح شوند.

این پوشه کاری پوشه ای است که گیت برای ردیابی تغییرات ما تماشا می کند.

به صورت اختیاری، وضعیت مخزن Git را تأیید کنید:

git status

نتیجه مراحل فوق در زیر نشان داده شده است:

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

را init دستور به ما می گوید که یک مخزن Git خالی به نام را مقداردهی اولیه کرده است .git در پوشه ای که گفتیم استفاده کنید.

را status دستور وضعیت مخزن ما را ارائه می دهد. در این برهه از زمان، ما در این مرحله هستیم main شعبه، ما هیچ تعهدی نداریم و چیزی برای ارتکاب نداریم.

ما اکنون یک مخزن محلی داریم! بیایید چند فایل را به مخزن اضافه کنیم تا بتوانیم با آن کار کنیم.

نحوه ایجاد فایل

هدف اصلی یک مخزن ذخیره یک عکس فوری از فایل ها از پوشه کاری ما در یک زمان خاص است. ما در حال حاضر هیچ فایلی در پوشه کاری خود نداریم.

بیایید دو فایل متنی ساده اضافه کنیم. اما توجه داشته باشید که فرآیند انشعاب که در این مقاله به آن پرداخته شده است با هر نوع فایل کدی یکسان است.

از یک ویرایشگر متن برای ایجاد دو فایل file1.txt و file2.txt استفاده کنید. برای شناسایی فایل، یک خط محتوا به هر فایل اضافه کنید.

اگر ترجیح می دهید این دو فایل را با استفاده از کنسول ایجاد کنید، این دستورات را یکی یکی تایپ کنید:

echo file1 > file1.txt
echo file2 > file2.txt

هر یک از این دستورات “پژواک” می دهد، یا متن سمت چپ را در فایل سمت راست “نوشتن” می کند. اگر فایل وجود نداشته باشد، فایل را ایجاد می کند.

استفاده از یک بزرگتر از > با echo تا محتوای فایل را با متن مشخص شده جایگزین کنید. از دو برابر بیشتر استفاده کنید >> تا متن را به انتهای فایل اضافه کنید. در این آموزش دو برابر بیشتر از بعد را خواهیم دید.

اکنون که یک مخزن محلی و دو فایل تغییر یافته داریم، بیایید آن فایل ها را به مخزن commit کنیم.

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

تخصیص فایل ها به یک مخزن محلی به مراحل زیر نیاز دارد:

ابتدا فایل ها را به قسمت مرحله بندی Git اضافه کنید.

git add .

قبل از commit کردن فایل‌ها به مخزن محلی، به Git می‌گوییم که کدام فایل‌ها را می‌خواهیم در آن commit اضافه کنیم و آنها را به یک ناحیه مرحله‌بندی اضافه کنیم. اساساً، مرحله بندی به ما این امکان را می دهد که به طور انتخابی انتخاب کنیم که کدام تغییرات را در یک commit قرار دهیم.

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

به صحنه سازی مانند یک سبد خرید فکر کنید. شما می توانید اقلامی را در سبد خرید خود قرار دهید یا اقلامی را بدون تعهد به خرید از سبد خرید خارج کنید. وقتی آماده شدید، متعهد می شوید که اقلامی را که در سبد خرید شما هستند خریداری کنید.

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

git commit -m "Initial commit"

در اینجا ما فایل‌های موجود در ناحیه مرحله‌بندی Git را به مخزن محلی متعهد می‌کنیم.

را -m گزینه برای یک پیام commit است. دنبال کن -m با پیام، در نقل قول. حتماً یک پیام واضح برای توصیف تغییراتی که انجام می دهید تعریف کنید. اطلاعات بیشتر در مورد پیام های commit در بخش بعدی زیر.

سپس می توانید به صورت اختیاری با استفاده از commit را تأیید کنید log دستور:

git log

را log دستور خروجی تاریخچه commit را برای مخزن با آخرین commit ابتدا صادر می کند. هر زمان که می خواهید ببینید در آن مخزن چه اتفاقی افتاده است از آن استفاده کنید.

توجه: اگر پنجره ترمینال شما برای نمایش کل گزارش خیلی کوچک است، این دستور به طور خودکار صفحه پیجر را برای صفحه نمایش از طریق صفحه نمایش باز می کند. استفاده کنید PgUp، PgDn یا کلیدهای جهتی برای صفحه در خروجی. را فشار دهید Q کلید خروج از پیجر

مجموعه گسترده ای از گزینه های موجود برای آن وجود دارد log دستور فیلتر کردن یا محدود کردن گزارش به commit های خاص. همچنین گزینه هایی برای زیباتر کردن سیاهه وجود دارد. برای اطلاعات بیشتر به مستندات مراجعه کنید.

ترمینال بعد از این مراحل در زیر نشان داده شده است:

نتیجه commit کردن فایل ها به مخزن محلی
شکل 2. تعهد فایل ها به مخزن محلی

را add فرمان پیامی را خروجی نمی دهد.

را commit دستور شعبه ای را که در آن هستیم نمایش می دهد (main، چند کاراکتر اول شناسه commit (در یک لحظه بیشتر در مورد آن) و پیام commit. سپس فایل های تغییر یافته را لیست می کند. در این مثال، 2 فایل تغییر کرده و هر دو درج شده بودند (فایل های جدید).

شماره بعد از create mode نوع فایل و مجوزها را نشان می دهد. 100644 به این معنی که اینها فایل های معمولی هستند، نه پوشه ها، با مجوز خواندن و نوشتن مالک.

را log فرمان تاریخچه کامیت شاخه فعلی را ارائه می دهد. این شامل یک رشته طولانی از اعداد و حروف به نام الگوریتم هش امن یا SHA است. SHA یک شناسه است که به هر commit اختصاص داده شده است. از نظر فنی، این یک چک‌سوم است که بر اساس فایل‌های موجود در commit به اضافه پیام گزارش، اطلاعات نویسنده و تاریخ است. گزارش همچنین شخصی که commit را انجام داده است (نام و ایمیل)، تاریخ commit و پیام commit را نمایش می دهد.

ما اکنون خود را داریم main شعبه با یک کامیت ما آماده شروع کار روی پروژه خود هستیم.

قبل از اینکه ادامه دهیم، اجازه دهید کمی بیشتر در مورد پیام های commit توضیح دهیم.

نحوه ایجاد پیام های commit مفید

یک پیام commit جزئیات کارهایی که انجام داده‌اید و چرا انجام داده‌اید. این امر به ویژه هنگام کار بر روی یک تیم مهم است زیرا به سایر اعضای تیم می گوید که چه چیزی در تعهد است. اما هنگام کار به تنهایی نیز مفید است زیرا به شما یادآوری می کند که چه کار کرده اید.

پیشنهاد می‌کنیم بخوانید:  Remote Branch در Git چیست؟ نحوه بررسی شاخه های راه دور از GitHub

تعریف پیام های commit خوب می تواند یافتن و مقایسه commit های قبلی را آسان تر کند. و درک هدف یک commit به ما کمک می کند هنگام ادغام آن commit احساس اطمینان کنیم.

هنگام کار بر روی تغییرات یک برنامه تولیدی، می‌توان از پیام‌های commit برای یادداشت‌های انتشار نیز استفاده کرد.

در اینجا چند نکته برای ایجاد پیام های commit خوب وجود دارد:

  • تغییر را به طور خلاصه شرح دهید. سعی کنید بیشتر از 50 کاراکتر نباشد. اگر نمی توانید commit را در 50 کاراکتر توصیف کنید، ممکن است به این معنی باشد که شما بیش از حد در یک commit گنجانده اید. و اگر متوجه شدید که یک “and” اضافه می کنید، این نشانگر خوبی است که چندین تغییر در یک commit دارید.
  • آنچه را توصیف کنید، نه چگونه. به عنوان مثال، به جای “تغییر 5 فایل”، از “افزودن اطلاعیه حق چاپ به پاورقی” استفاده کنید.
  • از حروف بزرگ فقط در حرف اول استفاده کنید.
  • با پریود تمام نشوید
  • از حالت امری استفاده کنید. یعنی پیام را به صورت دستور در زمان حال بنویسید.

این مورد آخر برای من کمی چالش برانگیز است زیرا اولین فکر من استفاده از زمان گذشته برای توصیف کاری است که انجام دادم. اما باید کاری باشد که commit انجام خواهد داد.

برای اینکه به یاد بیاورم، به تکمیل جمله “This commit will” فکر می کنم: “به عنوان مثال: “این commit کنتراست رنگ را بهبود می بخشد”. نه “بهبود” یا “در حال بهبود”.

برای اطلاعات بیشتر در مورد پیام های commit، این ویدیو را ببینید:

برای نشان دادن بهتر انشعاب، بیایید به موقع جلو برویم و فرض کنیم اکنون نسخه بتا پروژه خود را برای چندین کاربر داریم. و ما لیستی از وظایف ویژگی برای تکمیل و اشکالات/مشکلات برای رفع آن داریم.

چگونه یک شعبه ایجاد کنیم

برای هر کار یا مسئله ای که روی آن کار می کنید یک شعبه ایجاد کنید. این تضمین می کند که کار شما روی کار یا مشکل از پایگاه کد موجود شما جدا شده است. این کار کار بر روی چندین بخش پروژه را به طور همزمان آسان تر می کند یا ایده ها را بدون تأثیر منفی بر پایگاه کد اصلی شما امتحان می کند.

در ادامه همراه با مثال خود، کار را با به روز رسانی سبک دستور العمل ها شروع می کنیم تا فهرست مواد اولیه واضح تر شود و مراحل دستور پخت آسان تر انجام شود.

به دنبال این مراحل یک شاخه برای کار ایجاد می کنیم.

ابتدا به شاخه اصلی پروژه سوئیچ کنید:

git checkout main

برای مثال خاص ما، ما فقط خود را داریم main در این نقطه شاخه کنید، بنابراین این دستور ضروری نیست. اما به طور کلی، مهم است که اطمینان حاصل کنید که در آن هستید main قبل از ایجاد یک شاخه جدید، منشعب کنید.

سپس یک شاخه از شاخه فعلی ایجاد کنید:

git branch style_change

این branch دستور یک شاخه با نام مشخص شده از شاخه فعلی ایجاد می کند. در این حالت شاخه نامگذاری می شود style_change.

اما این دستور انجام می دهد نه پوشه کاری ما را به شاخه جدید تغییر دهید.

سپس به شعبه جدید بروید:

git checkout style_change

را checkout فرمان شعبه را بررسی می کند تا بتوانید با آن کار کنید. مثل چک کردن یک کتاب از کتابخانه فکر کنید تا بتوانید آن را بخوانید. یا یک فیلم را از یک سرویس پخش انتخاب کنید تا بتوانید آن را تماشا کنید.

به عنوان بخشی از فرآیند پرداخت، Git فایل ها را از آخرین commit در شاخه مشخص شده در پوشه کاری کپی می کند تا بتوانیم روی آنها کار کنیم. هنگامی که فایل‌ها را در پوشه کاری خود وارد، ویرایش یا حذف می‌کنیم، روی شاخه بررسی شده تأثیر می‌گذاریم.

همچنین، می‌توانید از یک فرمان واحد برای ایجاد و تغییر شاخه جدید استفاده کنید.

git checkout -b style_change

را -b گزینه یک شاخه جدید با نام ارائه شده ایجاد می کند و آن شاخه را بررسی می کند.

در صورت تمایل، لیست تمام شعب را برای تأیید ایجاد شعبه مشاهده کنید:

git branch

را branch دستور تمام شاخه های موجود در مخزن را فهرست می کند.

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

نتیجه ایجاد شعبه
شکل 3. ایجاد یک شاخه

اولین checkout دستور به ما می گوید که ما در حال حاضر در main شاخه.

دومین checkout دستور یک شاخه جدید به نام ایجاد می کند style_change و به آن شاخه سوئیچ می کند.

به عنوان بخشی از فرآیند پرداخت، فایل‌های موجود در پوشه کاری به فایل‌های جدیدتر تغییر می‌کنند style_change تعهد شعبه از آنجایی که این یک شاخه جدید است که از main شعبه، آخرین کامیت در شاخه جدید به آخرین کامیت در شاخه ای که از آن ایجاد شده است، اشاره می کند. main. بنابراین فایل‌های موجود در پوشه کاری، فایل‌هایی از آخرین commit هستند main شاخه.

را branch دستور دو شاخه را فهرست می کند. شاخه فعلی با یک ستاره نشان داده شده است

.

اکنون که شعبه جدید را بررسی کردیم، می‌توانیم تغییراتی در پوشه کاری خود ایجاد کنیم و این تغییرات فقط بر آن شاخه تأثیر می‌گذارد. پایگاه کد اصلی ما بدون تغییر باقی می ماند.

echo Style changes >> file1.txt

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

type file1.txt		// On windows
OR
cat file1.txt		// On a mac

با تایپ کردن محتوای فایل، تغییر را تأیید کنید:

نتیجه این دو دستور به صورت زیر است:
نتیجه تغییر یک فایل

شکل 4. اصلاح یک فایل

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

نحوه اعمال تغییرات در یک شعبه

همانطور که ما روی یک کار یا موضوع کار می کنیم، مانند کار تغییر سبک ما، تغییرات خود را انجام می دهیم. commit یک عکس فوری از پوشه کاری ما را به همراه تغییرات مرحله‌ای ذخیره می‌کند. تعهد اساساً پیشرفت ما را در شعبه برای آن کار یا موضوع ذخیره می کند.

در اینجا مراحل انجام می شود:

git add .

ابتدا تغییراتی که باید در commit گنجانده شود را مرحله بندی کنید:

ما قبلا از این دستور استفاده کرده ایم. به Git می‌گوید که کدام فایل‌ها را می‌خواهیم در commit اضافه کنیم. . را

(دوره) تمام فایل‌های موجود در پوشه کاری (و زیرپوشه‌های آن) را به ناحیه مرحله‌بندی اضافه می‌کند.

git commit -m "Restyle recipe ingredients"

سپس فایل هایی که در مرحله مرحله بندی هستند را commit کنید: commit این -m دستور یک commit جدید ایجاد می کند. همانطور که قبلا استفاده کردیم، -m گزینه نشان می دهد که ما یک پیام commit ارائه می دهیم. دنبال کن

با پیام، در نقل قول.

git commit -a -m "Restyle recipe ingredients"

یا، اگر فقط فایل‌ها را تغییر داده یا حذف کرده‌اید، هیچ فایل جدیدی ایجاد نکرده‌اید، می‌توانید با استفاده از یک دستور، تغییرات را در شاخه مرحله‌بندی کرده و انجام دهید: -a را گزینه تمام فایل های اصلاح شده و حذف شده در پوشه کاری را مرحله بندی می کند، اما انجام می دهد نه commit شامل هر فایل جدید این

سپس دستور یک عکس فوری جدید از پوشه کاری ما (به جز هر فایل جدید) ایجاد می کند و آنها را commit می کند. log به صورت اختیاری commit را با استفاده از

git log

دستور:

ما قبلا از این دستور برای خروجی commit history برای مخزن استفاده کرده ایم.

نتیجه در پاین نشان داده شده است:
نتیجه انجام تغییرات در یک شعبه.

شکل 5. انجام تغییرات در یک شاخه log را

دستور هر دو commit ما را با اولین آخرین آنها فهرست می کند.

به ایجاد تغییرات در شعبه ادامه دهید و در صورت نیاز آن تغییرات را انجام دهید. هر زمان که یک بخش منطقی از کار را کامل کردید یا زمانی که باید آن کار را برای کار دیگری کنار بگذارید یا زمانی که آن روز را ترک می کنید، متعهد شوید.

نحوه ایجاد و تعهد در یک شاخه دیگر

به‌عنوان توسعه‌دهنده، اغلب از وظیفه فعلی خود دور می‌شویم تا روی کار یا موضوع دیگری کار کنیم. style_changes برای مثال، فرض کنید ما هنوز در حال کار بر روی کار تغییر سبک هستیم و یک مشکل فوری از کاربران خود دریافت می کنیم که صفحه ورود ما دیگر کار نمی کند. ما تغییرات فعلی خود را به

همانطور که در بالا نشان داده شده است شعبه کنید تا بتوانیم کار را روی مشکل ورود شروع کنیم.

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

شاخه ای که شامل پایگاه کد فعلی ما است. به این ترتیب می‌توانیم بدون وارد کردن کدی از وظایف در حال انجام خود، رفع مشکل را اجرا کنیم. main با جابجایی به شروع کنید

git checkout main

شاخه. main این بررسی می کند main شعبه کنید، کد موجود در پوشه کاری ما را با کد آخرین commit در ما جایگزین کنید

شاخه.

type file1.txt		// On windows
OR
cat file1.txt		// On a mac

در صورت تمایل، کد موجود در پوشه کاری را تأیید کنید: file1.txt در حال تایپ کردن ما main فایل، می بینیم که تغییر سبک خود را نداریم. پوشه کاری ما اکنون حاوی کد اصلی از ما است

شاخه. login_issue بعد، ایجاد کنید و به یک جدید بروید

git checkout -b login_issue

شاخه: -b را

گزینه نشان می دهد که ما یک شعبه جدید با نام ارائه شده ایجاد می کنیم و آن شاخه را بررسی می کنیم.

git branch

به صورت اختیاری شعبه جدید را تأیید کنید:

نتیجه این دستورات در زیر نشان داده شده است:
نتیجه ایجاد شعبه دیگر

شکل 6. ایجاد یک شاخه دیگر branch را login_issue دستور سه شاخه ما را فهرست می کند. ستاره

پیشنهاد می‌کنیم بخوانید:  روش اجرای پرس و جوهای مشابه SQL روی فایل ها

نشان می دهد که ما داریم login_issue شعبه بررسی شد

به عنوان بخشی از فرآیند پرداخت، فایل‌های موجود در پوشه کاری به فایل‌هایی از آخرین کامیت روی آن تغییر می‌کنند main شاخه. mainاز آنجایی که این یک شاخه جدید است که دوباره از main شعبه، آخرین کامیت در شاخه جدید به آخرین کامیت در شاخه ای که از آن ایجاد شده است، اشاره می کند.

. بنابراین فایل‌های موجود در پوشه کاری، فایل‌هایی از آخرین commit هستند

echo Login changes >> file2.txt

شاخه.

type file2.txt		// On windows
OR
cat file2.txt		// On a mac

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

با تایپ کردن محتوای فایل، تغییر را تأیید کنید:
محتویات فایل در زیر نشان داده شده است:

نتیجه تغییر یک فایل style_change شکل 7. تغییر یک فایل

همانطور که با ما

git add .

شعبه، با اتمام تغییرات خود، آن تغییرات را انجام می دهیم.

تغییرات را برای commit مرحله بندی کنید:

git commit -m "Fix login issue"

همانطور که قبلا دیدیم، این دستور به Git می‌گوید که کدام فایل‌ها را می‌خواهیم در commit اضافه کنیم.

سپس فایل‌ها را از مرحله‌بندی به شاخه بررسی‌شده commit کنید: log این یک تعهد جدید از منطقه صحنه سازی ما ایجاد می کند.

git log

به صورت اختیاری commit را با استفاده از

دستور:
در اینجا نتیجه این دستورات است.

نتیجه انجام تغییرات style_change شکل 8. انجام تغییرات login_issue در گزارش بالا توجه کنید که ما commit تغییر سبک را نمی بینیم. این به این دلیل است که آن را در

شعبه و نه در این

شاخه.

  • ما تا زمانی که مشکل ورود کامل شود، به ایجاد تغییرات ادامه می دهیم.
  • در حین کار روی مشکل ورود، اگر نیاز دارید به کار تغییر سبک برگردید: checkout تمام تغییرات فعلی مشکل ورود را بررسی کنید. style_change استفاده کنید
  • دستور تغییر به
  • شاخه. login_issue روی کار کار کنید، همه تغییرات را بررسی کنید.

وقتی آماده شدید، به حالت اولیه برگردید branch شاخه.

استفاده کنید

دستور دهید در هر زمان لیست شعب خود را مشاهده کنید و تأیید کنید که کدام شعبه را بررسی کرده اید.

نحوه ادغام یک شعبه

type file1.txt		// On windows
type file2.txt
OR
cat file1.txt		// On a mac
cat file2.txt

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

بیایید ابتدا محتوای فایل های خود را با تایپ دو دستور، یکی یکی تأیید کنیم:
نتیجه در پاین نشان داده شده است:

محتوای فعلی شاخه login_issue را نمایش می دهد file1.txt شکل 9. محتوای فعلی شاخه login_issue file2.txt ما

متن اصلی ما است، نه تغییر سبک ما. ما login_issue متن ورود جدید ما را دارد. main اکنون ما آماده هستیم تا خود را ادغام کنیم

شاخه به ما main شاخه.

git checkout main

ابتدا به

type file1.txt		// On windows
type file2.txt
OR
cat file1.txt		// On a mac
cat file2.txt

شاخه:

برای روشن شدن آنچه اتفاق می‌افتد، اجازه دهید دوباره محتوای فایل‌های خود را بررسی کنیم:
در اینجا نتیجه است:

محتوای شاخه اصلی قبل از ادغام. main شکل 10. محتوای شاخه اصلی قبل از ادغام main توجه داشته باشید که هر دو فایل فقط حاوی متن اصلی ما هستند. هنگام تعویض به

شاخه، محتوای پوشه کاری ما از آخرین commit به فایل‌ها تغییر کرد main شاخه. این شامل هیچ یک از تغییراتی که در سایر شاخه های خود ایجاد کرده ایم نمی شود.

git merge login_issue

سپس شاخه وظیفه یا مسئله را در ادغام کنید

شاخه.

type file1.txt		// On windows
type file2.txt
OR
cat file1.txt		// On a mac
cat file2.txt

این تغییرات را از شاخه مشخص شده در شاخه فعلی ادغام می کند. اگر تداخلی وجود داشته باشد، Git از شما می خواهد که قبل از تکمیل ادغام، آنها را حل کنید.

ما دوباره محتوای فایل های خود را تأیید می کنیم:
در اینجا نتیجه این دستورات است:

محتوای شاخه اصلی پس از ادغام. merge شکل 11. محتوای شاخه اصلی پس از ادغام

را

فرمان اطلاعات مربوط به نوع ادغام را به همراه فایل هایی که ادغام شده اند نمایش می دهد.

در این مورد، Git از یک نوع ادغام سریع به جلو استفاده کرد. این یک ادغام ساده است که Git می تواند از آن استفاده کند وقتی که از زمان ایجاد شاخه ادغام شده هیچ تغییر جدیدی در شاخه فعلی وجود نداشته باشد. mainتعهدات از شاخه ادغام شده به طور موثر در شاخه فعلی گنجانده شده است. بدون نیاز به ادغام commit جدید و امکان تداخل ادغام وجود ندارد. login_issue برای مثال، ما هیچ تغییری در شاخه فعلی ایجاد نکردیم ( login_issue ) از نقطه ای که ما ایجاد کردیم main شاخه. بنابراین تعهدات در مورد

شاخه را می توان مستقیماً در آن گنجاند file2.txt شاخه. main ما می توانیم از محتوای آن را ببینیم login_issue که ما mainشاخه در حال حاضر شامل تغییرات از ما است

شاخه! ما با موفقیت این شاخه را ادغام کردیم

.

هنگامی که یک شاخه در پایگاه کد اصلی ادغام شد، می توان آن را پاک کرد.

چگونه یک شعبه را حذف کنیم

git branch

هر شاخه ای را که دیگر نیازی به تمیز نگه داشتن مخزن و مدیریت آسان آن ندارید، حذف کنید. main بیایید با تأیید لیست فعلی شعبه هایمان شروع کنیم: main اگر در آن نیستید

git checkout main

شاخه، سوئیچ به main شاخه:

شما نمی توانید شاخه ای را که در آن هستید حذف کنید. با جابجایی به

git branch -d login_issue

شعبه می توانید هر یک از شاخه های دیگر را حذف کنید. -d وظیفه یا شاخه مشکل مورد نظر را حذف کنید:

را

git branch

گزینه شاخه مشخص شده را از مخزن محلی حذف می کند.

به صورت اختیاری لیست حاصل از شاخه ها را تأیید کنید:
نتیجه این دستورات در زیر نشان داده شده است:

نتیجه حذف شعبه branch شکل 12. حذف یک شاخه

اولین branch -d دستور هر سه شاخه را فهرست می کند.

را branch دستور شاخه تعریف شده را حذف می کند و عمل را ثبت می کند.

آخرین main دستور دو شاخه باقیمانده ما را فهرست می کند. شعبه شماره ما با موفقیت حذف شد! style_change حالا شاخه اصلی ما چطور؟ ما

در شعبه تغییرات مشکل ورود ما ادغام شده است، اما اصلی ما

شعبه ندارد. mainنحوه ادغام “اصلی” به شاخه ها main برای به حداقل رساندن درگیری‌های ادغام گسترده‌تر در آینده، اغلب ایده خوبی است که همه شاخه‌های وظایف و صدور را به‌روز نگه دارید. main . این بدان معناست که پس از تغییرات یک شاخه در ادغام می شوند

شاخه، ما می خواهیم آن تغییرات را از ادغام کنیم

git checkout style_change

به همه شاخه‌های وظیفه یا موضوع باقی‌مانده بازگردید. style_change ابتدا به یکی از شاخه‌های وظیفه یا موضوع تغییر دهید:

در اینجا ما به

git log

شعبه چون تنها شعبه دیگر ماست.

به صورت اختیاری، commit های آن شاخه را مشاهده کنید:
این نتیجه این دستورات است:

نتیجه ثبت شاخه style_change قبل از ادغام main log شکل 13. ثبت شاخه style_change قبل از ادغام main

توجه داشته باشید که main دستور commit اولیه و تغییر استایل را فهرست می کند. رفع لاگین ما را ندارد.

git merge main

حالا ادغام کنید merge شاخه به شاخه فعلی: main این style_change فرمان تاریخچه تغییرات را از ادغام می کند

شاخه به شاخه فعلی، که در این مورد است

git log

شاخه.

در صورت تمایل، مجدداً commit های شعبه را مشاهده کنید:
نتیجه در پاین نشان داده شده است:

نتیجه ثبت شاخه style_change پس از ادغام main style_change شکل 14. ثبت شاخه style_change پس از ادغام main main توجه داشته باشید که در این مورد، Git نمی تواند از نوع ادغام سریع به جلو استفاده کند. این به این دلیل است که style_change و

شاخه ها از هم جدا شده اند، به این معنی که هر دو از زمانی که ما ایجاد کردیم تغییر کرده اند ort شاخه.

Git در عوض از an استفاده کرد استراتژی برای ادغام تغییرات برای اطلاعات بیشتر در مورد این استراتژی ادغام به مستندات مراجعه کنید.از آنجایی که Git نمی توانست از نوع ادغام سریع به جلو استفاده کند، فرآیند ادغام یک commit جدید به نام

ادغام commit log . یک commit ترکیبی از تغییرات ایجاد شده در شاخه های جداگانه را نشان می دهد. mainرا

  • دستور در شکل 14 شامل commit های سبک ما و commit های ادغام شده از است
  • . شروع از بالا: maincommit ادغام ایجاد شده توسط فرآیند ادغام.
  • تعهد رفع مشکل ورود به سیستم ما ادغام شد
  • . main تعهد اولین تغییر سبک ما.

تعهد اولیه ما به

قبل از اینکه شعبه را ایجاد کنیم.

در این مرحله، ما می‌توانیم به کار بر روی وظیفه استایل خود ادامه دهیم. یا از مراحلی که پوشش داده‌ایم برای افزودن شاخه‌ها برای کارهای یا مسائل دیگر استفاده کنید. mainچگونه پروژه خود را به پایان برسانیم

بیایید پروژه خود را تمام کنیم، یک تغییر دیگر در شعبه خود ایجاد کنیم و سپس تغییرات خود را در آن ادغام کنیم style_change . این مراحل کمترین توضیح را دارند زیرا قبلاً در این آموزش به آنها توضیح دادیم.

git checkout style_change

سوئیچ به

شاخه: file2.txt اگر قبلاً در این شعبه بودید، یک پیام نمایش داده می شود.

echo More style changes >> file2.txt

سپس تغییرات نهایی را انجام دهید. ما تغییرات را با افزودن یک خط دیگر به آن شبیه سازی می کنیم

git add .

فایل:

git commit -m "Restyle recipe steps"

فایل ها را به مرحله بندی اضافه کنید:

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

نتیجه ایجاد یک تغییر دیگر. main شکل 15. ایجاد یک تغییر دیگر

اکنون کار ما تمام شده است و آماده ادغام آن با آن هستیم main شاخه.

git checkout main

سوئیچ به style_change شاخه: mainادغام کنید

git merge style_change

شاخه به style_change :

git branch -d style_change

را حذف کنید

git branch

شاخه:

در صورت تمایل، تأیید کنید که شاخه حذف شده است:
این منجر به خروجی زیر می شود:

نتیجه ادغام به اصلی

شکل 16. ادغام به اصلی main توجه داشته باشید که ادغام قادر به استفاده از استراتژی سریع به جلو بود.

در این مرحله، ما اکنون فقط خودمان را داریم main شاخه.

git log

به صورت اختیاری، وضعیت را تأیید کنید

شاخه:
در اینجا نتیجه است:

گزارش تاریخچه کامیت نهایی. log شکل 17. تاریخچه ارتکاب نهایی

  • را style_change نمایش فرمان:
  • آخرین تغییر سبک از ادغام شد
  • شاخه. mainتعهد ادغام ایجاد شده توسط فرآیند ادغام قبلی.
  • تعهد رفع مشکل ورود به سیستم ما ادغام شد
  • . mainتعهد اولین تغییر سبک ما.

تعهد اولیه ما به

. recipes ما اکنون پایگاه کد اصلی خود را به روز داریم!

اگر می خواهید تمام کارهایی که انجام داده اید را به طور کامل حذف کنید، آن را حذف کنید

پوشه این کار فایل ها و مخزن Git را حذف می کند.

  • بسته بندی main مراحل اولیه کار با شعبه ها عبارتند از:
  • سوئیچ به main شاخه.
  • ایجاد یک وظیفه یا شاخه موضوع جدید از
  • شعبه کنید و آن را بررسی کنید.
  • فایل های موجود در پوشه کاری را تغییر دهید. main مرحله بندی و انجام تغییرات در شاخه وظیفه یا موضوع. mainهنگامی که کار یا مشکل کامل شد، به
  • شاخه و تغییرات را از شاخه وظیفه یا موضوع به ادغام کنید

.

شاخه وظیفه یا مشکل را حذف کنید.

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