10 دستور مهم Git که هر توسعهدهندهای باید بداند
دوشنبه 30 تیر 1399Git بخش مهمی از برنامهنویسی روزانه است (به خصوص اگر با تیم کار میکنید) و به طور گسترده در صنعت نرمافزار مورد استفاده قرار میگیرد.
از آنجا که دستورات مختلف زیادی وجود دارد که میتوانید از آنها استفاده کنید، تسلط بر Git زمان میبرد. اما بعضی دستورات بسیار زیاد استفاده میشوند. بنابراین در این مقاله 10 دستور مورد استفاده در Git را که هر توسعهدهندهای باید بلد باشد را به اشتراک میگذاریم و در مورد آنها توضیح میدهیم.
توجه: برای درک این مقاله، باید اصول اولیه گیت را بلد باشید.
Git clone .1
Git clone دستوری برای دانلود سورس کد موجود از یک ریپازیتوری از راه دور (مثلا گیتهاب) میباشد. به عبارت دیگر، Git clone در اصل یک نسخه مشابه از آخرین نسخه پروژه در ریپازیتوری میسازد و بر روی کامپیوتر شما ذخیره میکند.
چندین راه برای دانلود سورس کد وجود دارد، اما ما معمولا استفاده از clone با https را ترجیح میدهیم:
git clone <https://name-of-the-repository-link>
مثلا اگر میخواهید پروژه را از گیتهاب دانلود کنید، تنها کاری که باید انجام دهید این است که بر روی دکمه سبز (clone or download) کلیک کرده، URL را کپی کرده و آن را بعد از دستور git clone که در بالا نشان دادیم قرار دهید.
این کار یک کپی از پروژه را در فضای کاری لوکال شما میسازد تا بتوانید با آن شروع به کار کنید.
2. Git branch
Branchها در دنیای گیت بسیار مهم هستند. با استفاده از برنچها، چندین توسعهدهنده میتوانند به صورت همزمان بر روی یک پروژه کار کنند. ما میتوانیم از دستور git branch برای ایجاد، لیست کردن و حذف برنچها استفاده کنیم.
ایجاد یک branch جدید:
git branch <branch-name>
این دستور یک برنچ را به صورت محلی یا همان لوکال ایجاد خواهد کرد. برای قرار دادن برنچ جدید در ریپازیتوری راه دور، باید از دستور زیر استفاده کنید:
git push -u <remote> <branch-name>
مشاهده brancheها:
git branch or git branch --list
حذف branche:
git branch -d <branch-name>
برنچها یک موضوع بسیار گسترده و مهم هستند که شما باید خوب آنها را درک کنید.
3. Git checkout
این دستور هم یکی از پرکاربردترین دستورات گیت است. برای کار در یک برنچ، ابتدا باید به آن برنچ بروید. ما غالبا برای جابهجایی از یک برنچ به برنچ دیگر از git checkout استفاده میکنیم. همچنین میتوانیم از آن برای checkout کردن فایلها و کامیتها استفاده کنیم.
git checkout <name-of-your-branch>
برای جابهجایی موفقیتآمیز بین برنچها، باید چندین مرحله را انجام دهید:
قبل از جابهجایی باید تغییرات برنچ فعلی خود را کامیت کنید یا ذخیره کنید.
برنچی که میخواهید به آن وارد شوید باید در سیستم لوکال شما موجود باشد.
همچنین یک دستور میانبر وجود دارد که به شما اجازه میدهد همزمان یک برنچ را ایجاد کرده و به آن بروید:
git checkout -b <name-of-your-branch>
این دستور یک برنچ جدید در لوکال شما ایجاد میکند (-b مخفف branch است) و برنچ را بعد از ایجاد checkout میکند (وارد آن میشود).
4. Git status
دستور Git status همه اطلاعات ضروری در مورد برنچ فعلی را به ما میدهد.
git status
ما میتوانیم اطلاعاتی مانند موارد زیر را به دست آوریم:
آیا برنچ فعلی به روز است
آیا چیزی برای commit، push یا pull وجود دارد
آیا فایل stage شده یا unstage شدهای وجود دارد
آیا فایلهای ایجاد شده، اصلاحشده یا حذفشدهای وجود دارد
5. Git add
وقتی فایلی را ایجاد کرده، تغییر داده یا حذف میکنیم، این تغییرات در لوکال اتفاق میافتند و در کامیت بعدی نیستند (مگر اینکه تنظیمات را تغییر دهیم).
ما باید از دستور git add استفاده کنیم تا تغییرات فایلها را در کامیت بعدی بگنجانیم.
برای اضافه کردن یک فایل واحد:
git add <file>
برای اضافه کردن یک باره همه چیز:
git add -A
وقتی تصویر بالا در مورد چهارم را مشاهده میکنید، نام فایلهایی را میبینید که به رنگ قرمز هستند؛ این یعنی اینکه آنها فایلهای unstage هستند. فایلهای unstage در کامیتهای شما قرار نمیگیرند.
برای گنجاندن آنها، باید از git add استفاده کنیم:
نکته مهم: دستور git add ریپازیتوری را تغییر نمیدهد و تا زمانی که از git commit استفاده نکنیم، تغییرات ذخیره نمیشوند.
6. Git commit
این دستور شاید پر کاربردترین دستور گیت باشد. وقتی به یک مرحله خاص در توسعه میرسیم، میخواهیم تغییرات را ذخیره کنیم (شاید بعد از یک وظیفه یا مشکل خاص).
Git commit مانند تنظیم یک نقطه بررسی (checkpoint) در فرآیند توسعه است که در صورت نیاز میتوانید بعدا به آن بازگردید.
git commit -m "commit message"
نکته مهم: Git commit تغییرات شما را فقط به صورت لوکال ذخیره میکند.
7. Git push
بعد از کامیت کردن تغییرات، کار بعدی که میخواهید انجام دهید ارسال تغییرات به سرور راه دور است. Git push کامیتهای شما را برای ریپازیتوری راه دور آپلود میکند.
git push <remote> <branch-name>
با این حال، اگر برنچ شما به تازگی ایجاد شده باشد، شما همچنین باید برنچ را با دستور زیر آپلود کنید:
git push --set-upstream <remote> <name-of-your-branch>
یا
git push -u origin <branch_name>
نکته مهم: Git push فقط تغییراتی را آپلود میکند که کامیت شدهاند.
8. Git pull
دستور git pull برای دریافت به روز رسانی از ریپازیتوری راه دور استفاده میشود. این دستور ترکیبی از git fetch و git merge است که یعنی، وقتی از git pull استفاده میکنیم، به روز رسانیها را از ریپازیتوری راه دور دریافت میکند (git fetch) و بالافاصله آخرین تغییرات را در لوکال شما اعمال میکند (git merge).
git pull <remote>
این عمل ممکن است باعث مغایرتهایی (conflict) شود که باید آنها را به صورت دستی حل کنید.
9. Git revert
گاهی اوقات باید تغییراتی که ایجاد کردهایم را برگردانیم (undo). روشهای مختلفی برای بازگرداندن تغییرات به صورت لوکال یا از راه دور وجود دارد (بستگی به نیاز ما دارد)، اما باید از این دستورات به دقت استفاده کنیم تا از حذف کردن ناخواسته جلوگیری شود.
یک روش مطمئن که بتوانیم کامیتها را به حالت قبل برگردانیم استفاده از git revert است. برای دیدن تاریخچه کامیت ابتدا باید از git log -- oneline استفاده کنیم:
سپس باید hash code بعدی را برای کامیتی که میخواهیم undo کنیم را مشخص کنیم:
git revert 3321844
بعد از این، صفحهای را مشاهده خواهید کرد؛ فقط shift + q را برای خروج بزنید:
دستور Git revert کامیت مشخصی را undo میکند، اما یک کامیت جدید را بدون حذف مورد قبلی ایجاد میکند:
مزیت استفاده از git revert این است که به تاریخچه کامیت دست نمیزند. این یعنی شما هنوز هم میتوانید همه کامیتها را در تاریخچه خود ببینید، حتی موارد برگشت داده شده را.
یکی دیگر از اقدامات امن در اینجا این است که همه چیز در سیستم لوکال ما اتفاق میافتد مگر اینکه آنها را برای ریپازیتوری راه دور push کرده باشیم. به همین دلیل استفاده از git revert امنتر است و روش ارجح برای undo کردن کامیتها است.
10. Git merge
وقتی که توسعه در برنچتان کامل شد و همه چیز به خوبی کار کرد، مرحله آخر ادغام برنچ با برنچ والد (dev یا master) است. این کار با دستور git merge انجام میشود.
Git merge اساسا برنچ feature شما را همراه با تمام کامیتهای آن به برنچ dev (یا master) برمیگرداند. مهم است که به یاد داشته باشید که ابتدا باید در برنچ خاصی که میخواهید با برنچ feature ادغام کنید باشید.
مثلا وقتی میخواهید برنچ feature را با برنچ dev ادغام کنید:
اول باید به برنچ dev سوئیچ کنید:
git checkout dev
قبل از ادغام، باید برنچ dev لوکال خود را آپدیت کنید:
git fetch
در نهایت، میتوانید برنچ feature خود را با dev ادغام کنید:
git merge <branch-name>
تذکر: قبل از اینکه برنچها را ادغام کنید، مطمئن شوید که برنچ dev تان آخرین ورژن را دارد، در غیر این صورت ممکن است تداخل یا مشکلات ناخواستهای پیش آید.
مطالب زیادی در رابطه با گیت برای یادگیری وجود دارد، اما این 10 دستور از پر استفادهترین دستورات گیت هستند که ما روزانه در برنامهنویسی از آنها استفاده میکنیم.
- برنامه نویسان
- 3k بازدید
- 0 تشکر