زمان تخمینی مطالعه: 7 دقیقه

با این 10 دستور گیت پیشرفته مهارت‌های کنترل نسخه خود را برای حل مشکلات و حفظ یک مخزن Git تمیز بهبود دهید. آیا تا به حال به این فکر کرده‌اید که هنگام استفاده از Git چه کاری می‌توانید انجام دهید تا در مقابل مدیر خود شبیه یک حرفه‌ای به نظر برسید؟ در این پست، با 10 دستور گیت و میانبر پیشرفته Git آشنا می‌شویم که شما را در نسخه‌سازی، نگهداری و اشتراک‌گذاری کد کارآمدتر می‌کند. احتمالاً از قبل اصول commit کردن، push کردن، واکشی و انشعاب کردن با گیت را می‌دانید. اما دستورات و ویژگی‌های کمتر شناخته شده زیادی وجود دارد که می‌تواند مهارت‌های شما را ارتقا دهد. پس از خواندن این مطلب، چند ترفند ساده در آستین خود خواهید داشت تا با مهارت گیت خود همکاران را تحت تأثیر قرار دهید. در ادامه با چند دستور گیت آشنا خواهیم شد.

Add & Commit

شما چندین بار فایل‌ها را به این روش اضافه و commit کرده‌اید، اما اگر به شما بگویم می‌توان آن را در یک خط با پرچم «-am» انجام داد، چه؟

$ git add .
$ git commit -m "new project"

به جای دستور بالا می‌توانید دستور زیر را امتحان کنید، دستور زیر تغییرات فایل را اضافه کرده و commit را با استفاده از پیام ایجاد می‌کند.

$ git commit -am "new project"

[master 17d7675] new project
4 files changed, 2 insertions(+), 1 deletion(-)

Amend

می‌توانید نام پیام commit فعلی خود را با استفاده از پرچم «–amend» تغییر دهید و پیام جدید را بنویسید. این به شما در ارسال پیام های تصادفی کمک می‌کند.

$ git commit --amend -m "Love"

[master 7b7f891] Love
Date: Mon Jan 22 17:57:58 2024 +0500
4 files changed, 2 insertions(+), 1 deletion(-)

می‌توانید قبل از push کردن به مخزن راه دور، تغییرات اضافی را در commit فعلی وارد کنید. برای انجام این کار، باید تغییرات فایل را اضافه کنید و سپس با استفاده از پرچم --amend آن را commit کنید. برای حفظ پیام commit قبلی، به سادگی از پرچم «–no-edit» استفاده کنید.

$ git add . 
$ git commit --amend --no-edit

[master f425059] Love
Date: Mon Jan 22 17:57:58 2024 +0500
6 files changed, 2 insertions(+), 34 deletions(-)

لغو تاریخچه از راه دور

اگر می‌خواهید یک commit محلی را push کنید و تاریخچه راه دور را بدون رسیدگی به مشکلات لغو کنید، می‌توانید از پرچم «–force» استفاده کنید. با این حال، توجه به این نکته مهم است که استفاده از پرچم اجبار توصیه نمی‌شود و تنها زمانی باید از آن استفاده کرد که کاملاً از کاری که انجام می‌دهید مطمئن باشید. به خاطر داشته باشید که استفاده از پرچم اجبار(Force)، تاریخچه راه دور را بازنویسی می‌کند.

$ git push origin master --force

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 357 bytes | 357.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/kingabzpro/VSCode-DataCamp.git
8f184d5..f425059  master -> master

دستور Revert

برای لغو یک commit در Git، می‌توانید از دستور ‘revert’ استفاده کنید. با این حال، این دستور هیچ commitی را حذف نمی‌کند. در عوض، یک commit جدید ایجاد می‌کند که تغییرات ایجاد شده توسط commit اصلی را خنثی می‌کند. ما می‌توانیم از «log» با پرچم «–oneline» برای مشاهده تاریخچه commit به شکل کوتاه‌تر استفاده می‌کنیم.

$ git log --oneline

f425059 (HEAD -> master, origin/master) Love
8f184d5 first commit

برای بازگشت به commit قبلی، از دستور “git revert” و سپس شناسه commit استفاده می‌کنیم. این یک commit جدید با تغییرات commit قبلی ایجاد می‌کند.

$ git revert 8f184d5

دستور Codespace

اگر می‌خواهید بهره وری خود را در GitHub افزایش دهید می‌توانید با GitHub Code Spaces، اکنون می‌توانید کد خود را مستقیماً در مرورگر خود ویرایش و اجرا کنید. برای دسترسی به این ویژگی، کافی است به مخزن مورد علاقه خود بروید، کلید نقطه (“.”) را روی صفحه کلید خود فشار دهید و شما را به VSCode هدایت می‌کند.

می‌توانید تغییراتی در کد ایجاد کنید و آنها را به مخزن راه دور خود push کنید. با این حال، اگر می‌خواهید کد را در ترمینال اجرا کنید، باید Codespace را در فضای ابری اجرا کنید. نسخه رایگان یک گزینه عالی برای اجرای کد پایتون در مرورگر شما ارائه می‌دهد.

Stash

هنگام کار بر روی یک پروژه، می‌توانید فایل‌ها را به یک منطقه مرحله‌بندی اضافه کنید و سپس آنها را برای ذخیره پیشرفت فعلی خود commit کنید. با این حال، راه دیگری وجود دارد که می‌توانید کار خود را با استفاده از دستور “stash” به راحتی ذخیره کنید. وقتی از «stash» استفاده می‌کنید، پیشرفت فعلی خود را بدون اضافه کردن آن به قسمت مرحله‌بندی(staging area) یا انجام آن ذخیره می‌کنید. این به شما امکان می‌دهد پیشرفت خود را ذخیره کرده و هر زمان که نیاز دارید آن را بازیابی کنید. ما پیشرفت فعلی خود را با ارائه یک نام و پنهان کردن آن ذخیره خواهیم کرد.

$ git stash save new-idea

Saved working directory and index state On master: new-idea

می‌توانید فهرست ذخیره خود را مشاهده کرده و برای بازیابی آن، فهرست مربوطه را یادداشت کنید.

$ git stash list

stash@{0}: On master: new-idea

ذخیره ما از “ایده‌های جدید” در شاخص 0 ذخیره می‌شود. برای بازیابی آن، از این دستور استفاده کنید:

$ git stash apply 0

On branch master
Your branch is up to date with 'origin/master'.

تغییر نام Branch

شما می‌توانید نام شعبه پیش فرض خود را به چیزی مناسب تر تغییر نام دهید. در این صورت نام “master” را به “main” تغییر می‌دهیم.

$ git branch -M main

با استفاده از دستور زیر می‌توانید تغییرات را تأیید کنید:

$ git status

On branch main
Your branch is up to date with 'origin/master'.

تزیین لاگ‌ها

اگر می‌خواهید تاریخچه دقیقی از تمام commit های انجام شده در مخزن فعلی مشاهده کنید، می‌توانید از دستور git log استفاده کنید. با این حال، خواندن خروجی ممکن است دشوار باشد. برای خوانایی بیشتر، می‌توانید از پرچم‌های «graph»، «decorate» و «oneline» استفاده کنید. این تغییرات ایجاد شده در چندین شاخه و نحوه ادغام آنها را نشان می‌دهد.

$ git log --graph --decorate --oneline

برگشت branch

آیا تا به حال اتفاق افتاده که چندین بار به branch جدید تغییر داده و نام branch قبلی را فراموش کرده‌ باشید؟ در این حالت حتما مجبور شده‌اید از دستور git branch -a برای مشاهده لیست نام branch ها استفاده کنید. با این حال، راه ساده‌تری برای بازگشت به branch اصلی با استفاده از خط تیره «-» پس از دستور «git checkout» وجود دارد. ابتدا شاخه جدید Git “neo” را ایجاد می‌کنیم.

$ git branch neo

ما به شاخه “neo” سودئیچ می‌کنیم.

$ git checkout neo

Switched to branch 'neo'

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

$ git checkout -

Switched to branch 'main'

کپی تغییرات از راه دور

ما در مورد نادیده گرفتن مخزن راه دور یاد گرفته‌ایم. بیایید یاد بگیریم که چگونه با استفاده از مخزن راه دور، مخزن محلی را نادیده بگیریم.ما از دستور “fetch” برای دریافت آخرین تغییرات از مخزن راه دور استفاده خواهیم کرد.

$ git fetch origin

سپس، از دستور “reset” با پرچم “hard” برای لغو هرگونه تغییر محلی با نسخه راه دور استفاده می‌کنیم. لطفاً توجه داشته باشید که با این کار هرگونه تغییرات محلی برای همیشه کنار گذاشته می‌شود.

$ git reset --hard origin/master

HEAD is now at f425059 Love

اگر هنوز فایل‌های ردیابی نشده وجود دارد، می‌توان آنها را با استفاده از دستور زیر حذف کرد:

$ git clean -df

نتیجه گیری

در این مقاله، چند دستور گیت(Git) را پوشش داده‌ایم که برای دانشمندان داده و مهندسان نرم‌افزاری و برنامه نویس که روی یک پروژه داده و یا هوش مصنوعی مشترک کار می‌کنند، حیاتی است. دانستن این دستورات می‌تواند به شما کمک کند تا از حوادث جلوگیری کنید و مشکلات را خیلی سریعتر حل کنید.

دیدگاهتان را بنویسید

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