از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
دستورات انشعاب Git با مثال توضیح داده شده است
سرفصلهای مطلب
دانستن دستور 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
نتیجه مراحل فوق در زیر نشان داده شده است:
را 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 های خاص. همچنین گزینه هایی برای زیباتر کردن سیاهه وجود دارد. برای اطلاعات بیشتر به مستندات مراجعه کنید.
ترمینال بعد از این مراحل در زیر نشان داده شده است:
را add
فرمان پیامی را خروجی نمی دهد.
را commit
دستور شعبه ای را که در آن هستیم نمایش می دهد (main
، چند کاراکتر اول شناسه commit (در یک لحظه بیشتر در مورد آن) و پیام commit. سپس فایل های تغییر یافته را لیست می کند. در این مثال، 2 فایل تغییر کرده و هر دو درج شده بودند (فایل های جدید).
شماره بعد از create mode
نوع فایل و مجوزها را نشان می دهد. 100644
به این معنی که اینها فایل های معمولی هستند، نه پوشه ها، با مجوز خواندن و نوشتن مالک.
را log
فرمان تاریخچه کامیت شاخه فعلی را ارائه می دهد. این شامل یک رشته طولانی از اعداد و حروف به نام الگوریتم هش امن یا SHA است. SHA یک شناسه است که به هر commit اختصاص داده شده است. از نظر فنی، این یک چکسوم است که بر اساس فایلهای موجود در commit به اضافه پیام گزارش، اطلاعات نویسنده و تاریخ است. گزارش همچنین شخصی که commit را انجام داده است (نام و ایمیل)، تاریخ commit و پیام commit را نمایش می دهد.
ما اکنون خود را داریم main
شعبه با یک کامیت ما آماده شروع کار روی پروژه خود هستیم.
قبل از اینکه ادامه دهیم، اجازه دهید کمی بیشتر در مورد پیام های commit توضیح دهیم.
نحوه ایجاد پیام های commit مفید
یک پیام commit جزئیات کارهایی که انجام دادهاید و چرا انجام دادهاید. این امر به ویژه هنگام کار بر روی یک تیم مهم است زیرا به سایر اعضای تیم می گوید که چه چیزی در تعهد است. اما هنگام کار به تنهایی نیز مفید است زیرا به شما یادآوری می کند که چه کار کرده اید.
تعریف پیام های 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
دستور تمام شاخه های موجود در مخزن را فهرست می کند.
با دنبال کردن این مراحل با استفاده از دستور واحد برای ایجاد و تغییر به شاخه جدید، ترمینال مانند شکل زیر ظاهر می شود:
اولین 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
دستور سه شاخه ما را فهرست می کند. ستاره
نشان می دهد که ما داریم 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
شعبه چون تنها شعبه دیگر ماست.
نتیجه ثبت شاخه style_change قبل از ادغام main log
شکل 13. ثبت شاخه style_change قبل از ادغام main
توجه داشته باشید که main
دستور commit اولیه و تغییر استایل را فهرست می کند. رفع لاگین ما را ندارد.
git merge main
حالا ادغام کنید merge
شاخه به شاخه فعلی: main
این style_change
فرمان تاریخچه تغییرات را از ادغام می کند
شاخه به شاخه فعلی، که در این مورد است
git log
شاخه.
نتیجه ثبت شاخه 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 های ادغام شده از است
- . شروع از بالا:
main
commit ادغام ایجاد شده توسط فرآیند ادغام. - تعهد رفع مشکل ورود به سیستم ما ادغام شد
- .
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
هنگامی که کار یا مشکل کامل شد، به - شاخه و تغییرات را از شاخه وظیفه یا موضوع به ادغام کنید
.
شاخه وظیفه یا مشکل را حذف کنید.
توجه داشته باشید که این مراحل هنگام کار با یک مخزن از راه دور کمی پیچیده تر هستند. در این صورت با تیم یا جامعه منبع باز خود در مورد مراحل اضافی مناسب برای استفاده از شاخهها با یک مخزن راه دور بررسی کنید.
منتشر شده در 1402-12-26 14:00:05