نحوه استفاده از Git Branches

مقدمه

این مقاله سومین قسمت از مجموعه «استفاده از گیت» است. فرض بر این است که هم مقاله نصب و هم مقاله نحوه استفاده موثر از git را خوانده اید.

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

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

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

به طور پیش فرض اولین شاخه “مستر” نامیده می شود.

مشاهده Branches

قبل از ایجاد شاخه‌های جدید، می‌خواهیم همه شعبه‌های موجود را ببینیم. با تایپ کردن موارد زیر می توانیم تمام شاخه های موجود را مشاهده کنیم:

git branch -a

اضافه کردن “-a” به انتهای دستور به GIT می گوید که ما می خواهیم همه شاخه های موجود را ببینیم، از جمله آنهایی که در فضای کاری محلی خود نداریم.

خروجی مشابه موارد زیر خواهد بود:

* master remotes/origin/master

ستاره کنار “master” در خط اول خروجی نشان می دهد که ما در حال حاضر در آن شاخه هستیم. خط دوم به سادگی نشان می دهد که در کنترل از راه دور ما که مبدا نامگذاری شده است، یک شاخه واحد وجود دارد که به آن master نیز می گویند.

اکنون که می دانیم چگونه شاخه ها را مشاهده کنیم، زمان آن رسیده است که اولین شاخه خود را ایجاد کنیم.

ایجاد Branches

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

ما می‌خواهیم با شاخه پیش‌فرض «مستر» به‌عنوان تولید خود رفتار کنیم و بنابراین باید یک شاخه واحد برای توسعه یا پیش‌تولید ایجاد کنیم.

برای ایجاد یک شاخه جدید به نام develop، عبارت زیر را تایپ کنید:

git checkout -b develop

با فرض اینکه هنوز شاخه ای به نام “توسعه” نداریم، خروجی به صورت زیر خواهد بود:

Switched to a new branch 'develop'

در مورد شعبه‌ای با آن نام از قبل موجود است، GIT به ما می‌گوید:

fatal: A branch named 'develop' already exists.

با استفاده از دستور git checkout می توانید بین دو شاخه خود به عقب و جلو بروید:

git checkout master

یا

git checkout develop

با فرض وجود شاخه ای که می خواهید به آن سوئیچ کنید، خروجی مشابه زیر را خواهید دید:

Switched to branch 'master'

اگر سعی کنید به شعبه‌ای تغییر دهید که وجود ندارد، مانند

git checkout nosuchbranch

Git به شما می گوید:

error: pathspec 'nosuchbranch' did not match any file(s) known to git.

اکنون که چندین شعبه داریم، باید از آنها به خوبی استفاده کنیم. در سناریوی خود، ما از شاخه “توسعه” خود برای آزمایش تغییرات خود و از شاخه اصلی برای انتشار آنها برای عموم استفاده می کنیم.

برای نشان دادن این فرآیند، باید به شاخه توسعه خود برگردیم:

git checkout develop

ایجاد تغییرات در شاخه توسعه ما

در این شاخه، یک فایل خالی جدید به نام “develop” ایجاد می کنیم. تا زمانی که آن را به شاخه اصلی ادغام نکنیم (در مرحله زیر)، در آنجا وجود نخواهد داشت.

touch develop

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

می‌توانیم فایل “develop” را با تایپ کردن اضافه کنیم:

git add develop

مجموعه دستورات بالا یک فایل خالی به نام “develop” ایجاد می کند و آن را به GIT اضافه می کند.

ما همچنین باید این فایل را commit کنیم، که این فایل را به شاخه ای که در حال حاضر در آن هستیم، که “توسعه” است، پیوست می کند.

git commit -m "develop file" develop

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

ابتدا، می‌خواهیم تأیید کنیم که در حال حاضر در شاخه توسعه هستیم. ما می توانیم این کار را با تایپ زیر انجام دهیم:

git branch

خروجی باید مشابه شکل زیر باشد:

* develop master

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

اجرای دستور “ls” به ما نشان می دهد که این دو فایل وجود دارند:

ls

خروجی به ما نشان می دهد که هر دو فایل ما به ترتیب با نام های “file” و “develop” یافت می شوند:

develop file

کد ادغام بین شاخه ها

بخش جالب بعد از اینکه به شاخه اصلی خود برگشتیم اتفاق می‌افتد که می‌توانیم با دستور git checkout انجام دهیم:

git checkout master

برای اطمینان از اینکه ما در شاخه اصلی هستیم، می توانیم موارد زیر را تایپ کنیم:

git branch

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

develop * master

با اجرای مجدد “ls”، به نظر می رسد که فایل جدید ما گم شده است.

file

گم نشده است – در شاخه توسعه ما و ما در شاخه اصلی خود هستیم.

در سناریوی ما، این فایل هر گونه تغییر در هر فایل (یا یک فایل کاملاً جدید) را نشان می دهد که تمام آزمایشات را در شاخه توسعه ما گذرانده است و آماده تولید است. فرآیند جابجایی کد بین شاخه ها (اغلب از توسعه به تولید) به عنوان ادغام شناخته می شود.

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

در این مورد، ما می خواهیم از شاخه توسعه خود، جایی که فایل “develop” وجود دارد، به شاخه اصلی خود ادغام کنیم.

با در نظر گرفتن این موضوع، با توجه به اینکه در حال حاضر در شاخه اصلی هستیم، تنها کاری که باید انجام دهیم این است که دستور merge را اجرا کنیم.

یکی از گزینه هایی که می توانیم به دستور merge ارسال کنیم، یعنی “–no-ff”، به این معنی است که می خواهیم git تمام پیام های commit را قبل از ادغام حفظ کند. این امر ردیابی تغییرات را در آینده آسان تر می کند.

برای ادغام تغییرات از شاخه توسعه به شاخه اصلی، عبارت زیر را تایپ کنید:

git merge develop --no-ff

خروجی دستور مشابه زیر خواهد بود:

Merge made by the 'recursive' strategy. 0 files changed create mode 100644 develop

اجرای مجدد دستور ls تأیید می کند که فایل “develop” ما اکنون در شاخه اصلی ما است.

develop file

آخرین کاری که اکنون باید انجام دهیم، برای ایجاد این تغییر در سرور راه دور، فشار دادن تغییرات است که می توانیم با کمک دستور git push انجام دهیم.

git push

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

Counting objects: 4, done. Delta compression using up to 2 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 332 bytes, done. Total 3 (delta 1), reused 0 (delta 0) To ssh://git@git.domain.tld/repository 9af2dcb..53649cf master -> master

نتیجه

با دنبال کردن آموزش بالا، باید یک راه‌اندازی گردش کار دو شاخه‌ای داشته باشید و امیدواریم درک درستی در مورد نحوه عملکرد انشعاب در GIT داشته باشید. نظر خود را در نظرات با ما در میان بگذارید!

[تعداد: 1   میانگین: 5/5]
دیدگاهتان را بنویسید

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

شاید دوست داشته باشید