❓ در گیت، چه زمانی باید از `rebase` استفاده کنیم و تفاوتش با `merge` چیه؟
از `rebase` زمانی استفاده میکنیم که میخواهیم تاریخچهی خطی و مرتبتری داشته باشیم. با `rebase`، کمیتها به انتهای شاخهی مقصد اضافه میشن و تاریخچهی پروژه تمیزتر میمونه. در حالی که با `merge`، تغییرات به صورت تو در تو وارد میشن و تاریخچهی تغییرات بیشتر شلوغ میشه. به همین خاطر، هر کدوم کاربری خاص خودش رو داره.
دسته: git
❓ چگونه میتوانم تغییرات محلی که هنوز کامیت نشده را به یک شاخهی دیگری منتقل کنم؟
برای انتقال تغییرات محلی که هنوز کامیت نشده، میتونیم از `git stash` استفاده کنیم. ابتدا با `git stash` تغییرات رو ذخیره میکنیم و سپس به شاخهی مقصد میریم و با `git stash pop` تغییرات رو برمیگردونیم. این کار باعث میشه که تغییرات محلی محفوظ بمونه و به راحتی به شاخهی جدید منتقل بشه.
دسته: git
❓ چطور میتونیم یک شاخه (branch) رو به شاخهی اصلی (main) ادغام کنیم بدون این که تاریخچهی تغییرات رو از بین ببریم؟
برای ادغام یک شاخه به شاخهی اصلی بدون از بین بردن تاریخچه، میتونیم از دستور `git merge --no-ff <branch-name>` استفاده کنیم. این دستور باعث میشه که یک مِرژ کامیت جدید ایجاد بشه که تاریخچهی تغییرات رو حفظ میکنه و همچنین نشون میده که این ادغام از کدوم شاخه آمده.
دسته: git
❓ چجوری میتونیم یک شاخه رو از یک ریپوزیتوری به ریپوزیتوری دیگه منتقل کنیم؟
برای منتقل کردن یک شاخه به ریپوزیتوری دیگه، ابتدا باید به شاخهای که میخواید منتقل کنید سوییچ کنید و از دستور git push استفاده کنید. به این شکل: git push <remote-name> <branch-name>:<new-branch-name>. این کار باعث میشه که شاخه شما به ریپوزیتوری مقصد اضافه بشه و تغییرات رو هم منتقل کنید.
دسته: git
❓ چطور میتونیم commitهای اشتباه رو برگردونیم و تغییرات رو اصلاح کنیم؟
برای برگردوندن commitهای اشتباه میتونید از git revert استفاده کنید که یک commit جدید ایجاد میکنه که تغییرات commit قبلی رو معکوس میکنه. اگه فقط میخواید commit رو حذف کنید، میتونید از git reset استفاده کنید، ولی این کار تاریخچه رو تغییر میده و باید با احتیاط انجام بشه.
دسته: git