کامند های git برای کار با branch بصورت لوکال یا در gitlab

13 اردیبهشت 1400 برچسب‌ها:

در این مقاله فرض کردیم از قبل شما با SSH KEY به گیتلب متصل شدید!

حالا میخواهید اولین پروژه خود را با GitBash به Gitlab بفرستید! کامند هایی را به شما معرفی میکنیم که برای push کردن لوکال ریپوسیتوری به ریموت ریپوسیتوری و … کمکتان میکنند.

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

چگونه git را راه بیندازیم؟

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

git init

معمولا فایل گیت یک پوشه با نام git بصورت hidden است.

چگونه تغییرات را به برنچ اعمال کنیم؟

برای اینکه ببینید تغییرات اعمال شده اند یا نه میتوانید از git status استفاده کنید. اگر یک پیام قرمز بود یعنی از git add استفاده نکردید. اگر پیام سبز بود یعنی از git add استفاده کردید اما از git commit هنوز استفاده نکردید. و اگر هیچ پیام رنگی نبود یعنی همه چیز رو به راه است.

git status
git add .
git commit -m "folan bisar ... :) "

چگونه لیست branch های موجود را ببینیم؟

با این کامند تمام برنچ ها (چه لوکال چه در گیتلب) دیده میشوند.

git branch -a

چگونه از یک برنچ به برنچ دیگر برویم؟

فرض کنید در برنچ master هستید و میخواهید به برنچ 02_01 بروید!

git checkout 01_02

چگونه یک branch ایجاد کنیم؟

به جای 02_01 میتوانید از هر نام دیگری استفاده کنید.

git branch 01_02

حالا سوالی که پیش میاد این است که این برنچ جدید چه فایل هایی را داخل خود دارد؟

هر چند خط کد، فایل و پوشه که داخل برنچ کنونی باشد در برنچ جدید ایجاد میشود.

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

چگونه branch ایجاد شده را به گیتلب push کنیم؟

بدیهی است بجای 02_01 میتوانید از هر نام دیگری استفاده کنید! مثلا master !

git push -u origin 01_02 

چگونه همان branch را از گیتلب حذف کنیم؟

git push -u origin --delete 01_02

نکته: گیتلب به شما اجازه نمیدهد که برنچ پیشفرض master را حذف کنید!

چگونه همان branch را بصورت لوکال حذف کنیم؟

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

git branch -d 01_02

گاهی ارور میدهد و میگوید که باید بجای d از حرف بزرگ D استفاده کنید:

git branch -D 01_02

چگونه یک branch را merge کنیم؟

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

مثلا فرض میکنیم یک برنامه نویس، در برنچ master کدهایی add کرده است. (علاوه بر آن commit هم کرده). اما برنچ 02_01 هنوز کدهای قبلی را دارد. برنامه نویس میخواهد برنچ 02_01 مانند master بشود.

بنابراین ابتدا به برنچ 02_01 میرود. سپس از کامند زیر استفاده میکند:

git merge master 

چگونه تمام branch ها را فقط با یک کامند به گیتلب push کنیم؟

اگر میخواهید همه برنچ های حذف و اضافه شده بصورت لوکال با همه برنچ های موجود در گیتلب برابر شود از کامند mirror استفاده کنید:

git push origin --mirror

اگر میخواهید فقط برنچ های جدید به گیتلب اضافه شود:

git push origin --all

چرا نمیتوانم به گتلب push کنم؟

احتمالا شما SSH KEY نساختید. میتوانید این مقاله را بخوانید و به دستور عمل هایش عمل کنید. بصورت یک توضیح کلی میتوان گفت شما باید یک SSH KEY در ترمینال GitBash در دسکتاپ بسازید، آن SSH را به گیتلب ببرید و paste کنید.