آموزش ایجاد برنچ remote

آموزش ایجاد برنچ remote

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

علاوه بر نسخه گذاری گیت به شما اجازه می ده تا در محیط مختلف در آن واحد کار کنید. منظور از محیط های چندگانه در این مقاله branch ها هستند.

چرا به برنچ ها نیاز داریم؟

زمانی که با گیت کار می کنید شما یک برنچ یا محیط پیش فرض به نام master (یا main) دارید. این برنچ ویژه source code ی را نگه داری می کند که در آن برنامه شما آماده تحویل است.

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

برای ایجاد و استفاده از برنچ جدید شما از دستور زیر در ترمینال در پوشه پروژه خود استفاده کنید:

# create a new branch
git branch branch-name
# change environment to the new branch
git checkout branch-name

در برنچ جدید ایجاد شده شما می توانید تغییرات جدید خود را ایجاد کنید. س\س زمانی که تغییرات شما به اتمام رسید شما آنها را با برنچ مستر مرج می کنید.

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

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

git checkout remote branch به چه معنی است؟

زمانی که شما یک پروژه با گیت را شروع می کنید دو محیط در دسترس دارید: برنچ مستر محلی (که روی کامپیوتر شما است) و برنچ مستر remote ( که در پلتفورم هایی مثل Github موجود است).

شما می توانید تغییرات خود را از برنچ مستر محلی به برنچ مستر remote پوش کنید و همچنین تغییرات خود را از برنچ ریموت pull کنید.

زمانی که شما یک برنچ محلی ایجاد می کنید تا زمانی که آن را به Github پوش نکرده باشید فقط به صورت محلی موجود است. مثال:

# create a new branch
git branch new-branch
# change environment to the new branch
git checkout new-branch
# create a change
touch new-file.js
# commit the change
git add .
git commit -m "add new file"
# push to a new branch
git push --set-upstream origin new-branch

طبق مثال بالا، origin new-branch برنچ را به remote می فرستد. هماهنطور که توجه کرده اید ما یک برنچ جدید ایجاد کردیم و یک تغییر روی آن commit کردیم و سپس آن را به برنچ remote جدید push کردیم.

اما اگر برنچ remote از قبل موجود باشد و ما بخواهیم برنچ و همه تغییرات آن را به محیط محلی خود pull کنیم چه اتفاقی می افتد؟

اینجاست که ما به سراغ git checkout remote branch می رویم.

چطور از git checkout remote branch استفاده کنیم؟

بیاید فرض کنیم که یک برنچ remote وجود داره که توسط برنامه نویس دیگه ای ایجاد شده و ما می خوایم اون رو pull کنیم. روش این کار به صورت زیر هست:

۱- fetch کردن همه برنچ های remote

git fetch origin

این دستور همه برنچ های remote را از repository می گیره. origin نام remote مد نظر ماست. بنابراین اگر نام آن upstream بود شما باید می نوشتید git fetch upstream.

۲- برنچ ها را برای checkout در دسترس قرار دهید.

برای اینکه branch های در دسترس برای checkout را ببینید دستور زیر را اجرا کنید

git branch -a

خروجی این دستور لیستی از برنچ های موجود برای checkout است. برای برنچ های remote شما آنها را با پیشوند remotes/origin مشاهده می کنید.

۳- تغییرات را از برنچ remote پول کنید

دقت کنید که نمی توانید تغییرات را مستقیم روی یک برنچ remote اعمال کنید. لذا، شما به یک کپی از آن برنچ نیاز دارید. فرض کنید می خواهید از برنچ ریموت fix-failing-tests کپی بگیرید، دستور لازم به صورت زیر است:

git checkout -b fix-failing-tests origin/fix-failing-tests

این دستور چی کار می کنه؟

  • یک برنچ جدید به نام fix-failing-tests ایجاد می کنه
  • روی برنچ ایجاد شده checkout میکنه
  • تغییرات را از برنچ origin/fix-failing-tests به برنچ جدید دریافت می کنه

و حالا شما یک کپی از برنچ remote دارید. لذا شما می توانید commit های خود را به برنچ remote پوش کنید. برای مثال شما می توانید یک commit  جدید به صورت زیر push کنید:

touch new-file.js
git add .
git commit -m "add new file"
git push

این تغییرات commit شده را به origin/fix-failing-tests می فرستد. اگر دقت کرده باشید ما مجبور نیسیم مشخص کنیم که کجا می خواهیم تغییرات را push کنیم (یعنی git push origin fix-failing-tests). این به خاطر این است که git به طور خودکار برنچ محلی را تنظیم کرده تا برنچ remote را دنبال کنه.

نتیجه گیری

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

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

با checkout remote branch همکاری بهتر میشه به طوریکه برنامه نویس ها می توانند برنچ های remoteرو روی سیستم های خودشون کپی کنند و تغییرات خودشون رو اعمال و به برنچ remote ارسال کنند.

منبع:

Git Checkout Remote Branch Tutorial