گیت چیست و آشنایی با دستورات کمتر شناخته شده
هر برنامه نویسی نیاز داره که حتما با گیت git در حد قابل قبولی آشنا باشه و در پروژه های خودش از این تکنولوژی برای مدیریت ورژن برنامه استفاده کند.
گیت شامل یک سری دستورات پایه و اساسی میباشد که از طریق آنها میتونیم نیازهای ابتدایی پروژه و برآورده کنیم.
اما در این مقاله قصد داریم که به یک سری دستوراتی که کاربردی هستند اما کمتر برنامه نویسی شاید به آنها توجه کند.
گیت چیست و چه کاربردی دارد؟
گیت (Git) یک سیستم کنترل نسخه متنباز و توزیعشده است که برای مدیریت و ردیابی تغییرات کدها و فایلها در یک پروژه نرمافزاری استفاده میشود. این ابزار ابتدا توسط “لینوس تورووالدز” (Linus Torvalds) در سال ۲۰۰۵ توسعه داده شد و اکنون توسط جامعه برنامهنویسی باز و محبوب است.
گیت برای توسعه نرمافزارها یا پروژههای مختلفی که توسط تیمهای مختلف کار میکنند، بسیار مفید است. این ابزار امکانهایی ارائه میدهد که به توسعهدهندگان اجازه میدهد:
- ردیابی تغییرات (Version Control): گیت به صورت مداوم تغییرات انجامشده در کدها و فایلها را ردیابی میکند.
هر تغییری که در فایلها ایجاد میشود، بهصورت تاریخچهای ذخیره میشود و این امکان را به برنامهنویسان میدهد که به هر زمان به نسخههای قبلی پروژه برگردند یا تغییرات را برگردانند. - همکاری تیمی (Collaboration): گیت به تیمها اجازه میدهد همزمان بر روی پروژهها کار کنند.
هر کدام از اعضای تیم میتوانند تغییرات خود را جداگانه بر روی نسخه محلی خود ثبت کنند و پس از تایید تغییرات، آنها را به نسخه اصلی پروژه اضافه کنند. - افزایش امنیت (Security): با توزیعشده بودن گیت، کدها و تغییرات بهصورت محلی در کامپیوترهای افراد ذخیره میشوند و نیاز به اتصال به سرورهای مرکزی ندارند.
این امر به افزایش امنیت کدها کمک میکند. - مدیریت شاخهها (Branch Management): گیت اجازه میدهد که توسعهدهندگان شاخههای جدید از پروژه (Branch) ایجاد کنند.
این شاخهها میتوانند برای اضافه کردن یک ویژگی جدید یا برطرف کردن یک باگ استفاده شوند و پس از تایید به شاخه اصلی (Master Branch) اضافه شوند. - بازگشت به نسخههای قبلی (Reverting): اگر بعد از اعمال تغییرات به کد، متوجه شدید که مشکلی وجود دارد، میتوانید به نسخههای قبلی پروژه برگردید و بازگشت کنید.
گیت یکی از اصولیترین ابزارهای برنامهنویسی است که به توسعهدهندگان امکان کار بهتر و سازمانیافتهتر را میدهد و بهبودهای قابل توجهی در فرآیند توسعه نرمافزار و همکاری تیمی به وجود آورده است.
همچنین، این ابزار در ایجاد نرمافزارهای پایدار، قابل اعتماد و بهینه بسیار مؤثر واقع شده است.
دستورات کمتر شناخته شده گیت
git bisect: این دستور به صورت اتوماتیک به شما کمک میکند تا به سریعترین روش پیدا کنید که کد شما چهجایی به هم شکسته شده است. با استفاده از دستور git bisect میتوانید بین دو نقطه در تاریخچه کامیتها حرکت کنید و بررسی کنید که با کدام کامیت مشکلات به وجود آمده است.
git reflog: این دستور لاگ تمامی حرکتهای مشابه HEAD را نمایش میدهد. به عبارت دیگر، git reflog به شما امکان میدهد تاریخچهی تغییرات و محلهایی که HEAD (موقعیت مکانی فعلی) به آنها اشاره کرده است را مشاهده کنید.
git rerere: این دستور به شما اجازه میدهد تا راه حلهای که قبلاً برای رفع تداخلها ایجاد کردهاید را مجدداً استفاده کنید. rerere مخفف “Reuse Recorded Resolution” است و به شما این امکان را میدهد که تداخلهای مشابه را به صورت اتوماتیک حل کنید.
git worktree: این دستور به شما امکان میدهد که درختهای کاری جدیدی از یک مخزن گیت در کنار همان مخزن ایجاد کنید. این کار به شما اجازه میدهد تا در دو کپی از مخزن، روی تغییرات جداگانه کار کنید.
git stash: با استفاده از این دستور میتوانید تغییرات در حال کار خود را به یک پشته (stash) انتقال دهید و بعداً آنها را بازیابی کنید. این کار مفید است زمانی که شما نمیخواهید تغییرات خود را کامیت کنید، اما میخواهید بر روی چیز دیگری کار کنید.
git worktree prune: این دستور به شما امکان میدهد تا درختهای کاری اضافی را از مخزن گیت حذف کنید تا فضای دیسک را آزاد کنید.
git diff دیدن تمام تغییرات محلی, با انتخاب نام فایل فقط تغییرات آن فایل و میبینید.
git log دیدن تاریخچه تمام commit ها
git blame my_file دیدن این که چه کسی و چه زمانی فایل را تغییر داده است.
بازگردانی تغییرات
برای بازگردانی تغییراتی که انجام داده اید میتوانید از دستورات git reset, git checkout, و git revert استفاده کنید.
دستور git revert فقط در سطح commit استفاده می شود.
git clean -n پاک کردن فایل های ناشناخته
برای ساخت shortcuts برای دستورات گیت کدهای زیر را در .bash_profile اضافه کنید.
alias gs='git status '
alias ga='git add '
alias gaa='git add -A '
alias gb='git branch '
alias gc='git commit '
alias gcm='git commit -m '
alias go='git checkout '
دیدگاهتان را بنویسید