نرمافزار کنترل ورژن گیت واقعاً یکی از قویترین نرمافزار هایی است که برای اینکار ساخته شده است. گیت یک نسخه تکامل یافته از subversion و CVS و دیگر کنترل کننده های نسخه است. این برنامه واقعاً برای توسعه برنامههای توزیع شده قدرتمند است. شما حتی میتوانید بدون اتصال به اینترنت یا سرور مرکزی خود نیز کارهایتان را انجام دهید و نگران خراب شدن برنامه تان نباشید.
همچنین گیت از دیگر برنامههای کنترل ورژن کاملتر است . تجربه لذت بخشی در کار با آن را میتوانید هموار حس کنید. یکی از مهمترین مواردی که باید آنها را در استفاده از git یاد بگیرید دستورات متنی برای مخازن برنامه تان است که همواره از آنها استفاده خواهید کرد. برای همین ما در این مقاله آموزشی سریع و کوتاه در مورد git خواهیم داشت و پس از آن میتوانید نیاز های ساده خود را با git مرتفع نمایید.
استفاده از پروژه های موجود
یکی از کارهای معمولی که بیشتر توسعه دهندکان انجام میدهند استفاده از پروژه های موجود و کد نویسی برای آنها است. اولین کاری که باید انجام دهید نصب git است. توزیعهای خوب لینوکسی معمولاً در مخازن خود git و git core و راهنماهای گیت را دارند و میتوانید به راحتی آنها را نصب و استفاده کنید.
پس از نصب git config را اجرا کنید تا تنظیمات مخصوص اکانت شخصیتان و مشخصات مورد نیاز را وارد نمایید.
برای ساخت یک دایرکتوری برای پروژه خود و سپس مراجعه به آن و بارگذاری پروژه مورد نظر خود (اصطلاحاً کلون کردن) میتوانید از دستورات زیر استفاده کنید.
$ mkdir project $ cd project $ git clone https://[remote-repo-address].git
چند لحظهای طول میکشد تا در فایلهای مخزن سرو گوشی آب دهد و سپس تمامی آنها در فایل متنی قرار خواهد گرفت. گیت برای شما لاگ ها و پیامهای کامیت شده و هش ها و برنچ های ایجاد شده را مشاهده کرد و تمامی اطلاعاتی که نیاز دارید برای ترک کردن کدهایتان در .gitdirectory قرار دارد.
اولین تغییرات
از لذتهای کار با گیت این است که برنچ خود را ایجاد کنید و روی آن تغییرات دلخواهتان را انجام دهید. شما میتوانید هر تعداد شعبه یا برنچی را بخواهید ایجاد کنید و محتوای خود را بدون تغییر در شعبه اصلی مدیریت کرده و تغییر دهید. دستورات برای پروژه فرضی با اسم coolproject به صورت زیر خواهند بود. و شعبه یا برنچ خود را میتوانید با آن راه اندازی کنید
$ cd coolproject $ git checkout master $ git pull $ git checkout -b workbranch
کاری که انجام دادیم رفتن به دایرکتوری پروژه و چک کردن آن و سپس گرفتن یک شعبه از پروژه و انتقال آن به مکان جدید با نام workbranch که همان شعبه مورد نظر برای تغییرات است. تمامی دستورات به صورت محلی انجام خواهند شد به جز دستور pull که از سرور اصلی اطلاعات را دریافت میکند. حال میتوانید بر روی برنچ خود کار کنید. و هر نوع تغییری که میخواهید را بدون آزاد دادن دیگران و تخریب برنامه و کد های اصلی انجام دهید.
برای دیدن تغییرات انجام شده در برنچ مورد نظر میتوانید از دستور status استفاده کنید. همانند شکل زیر
$ git status On branch workbranch Changes not staged for commit: (use "git add/rm ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: api.c deleted: routes.c no changes added to commit (use "git add" and/or "git commit -a")
دستور استاتوس اطلاعات مفیدی را به شما ارائه خواهد داد و موادرمهم در آن به رنگهای دیگری در آمده و هایلایت میشود. پس از آن میتوانید تمامی تغییرات را به شعبه خود وارد کنید.
$ git add --all $ git add [filename or filenames, space-delimited]
حال وقتی از git status استفاده کنید. تغییرات انجام شده در فایل را به شما اعلام خواهد کرد. حتی میتوانید فایلهای شعبهای که روی آن کار میکنید را بدون پاک کردن همان فایل در شعبه های دیگر نیز پاک کنید. برای اینکار میتوانید در دستور زیر برای پاک کردن فایلی با نام api.c استفاده کنید. مانند زیر
$ git rm api.c
حال اگر نظرتان تغییر کرد و خواستید فایلها را برگردانید چه کار باید کرد؟ برای بازگردانی فایل api.c میتوانید از دو دستور زیر استفاده کنید.
$ git reset HEAD api.c $ git checkout api.c
این نکته را در نظر داشته باشید که از زمانی که بر روی workbranch کار میکنید تمامی کد ها به صورت لوکال یا محلی ذخیره میشود. میتوانید بیشتر کار خود را به صورت آفلاین انجام دهید و زمانی که میخواهید تغییرات ثبت شوند آنها در مخازن خود بارگذاری کنید. این دو دستور زیر را مشاهده کنید. در اولی تغییرات را به صورت محلی کامیت میکنیم و سپس آن را به سرور اصلی میفرستیم.
$ git commit -a -m "updates and changes and cool code stuff" $ git push origin workbranch
حال برنچ شما در ریموت سرور قرار گرفته و آماده برای یکی شدن با نسخه اصلی میباشد. در بیشتر پروژه های واقعی شما در حقیقت روی یک کارگزار گیت مانند گیتهاب و یا بیت باکت و کلاد فورج کار خواهید کرد و از ابزار های هاستینگ برای درخواست pull استفاده میکنید. دستور pull بدین معناست که شما میخواهید کد های نوشته شده خود را با کد اصلی مقایسه کنید و سپس هر دو را در مکان اصلی یا master یکی کنید.
تغییرات ابتدایی در شاخه
دستور git branch را برای مشاهده شاخههای ایجاد شده در سیستم خود میتوانید به کار ببرید و git branch -a نیز تمامی شاخههایی که در ریموت سرور شما وجود دارند را به شما نشان خواهند داد. دستور git branch -d {branch name } نیز شاخه محلی شما را پاک خواهد کرد.
Undo
اگر کامیت خود را به ریموت pushکرده باشید و بخواهید تغییرات اخیر را حذف کنید چاره چیست؟ میتوانید از دستور زیر استفاده کنید
$ git revert de4bbc49eab
سپس ویرایشگر پیشفرض شما باز شده و میتوانید کامیت خود را در آن وارد کرده و ادامه عملیات revert کردن یا بازگردانی را انجام دهید. هر کامیت یک شماره مخصوص به خود را دارد که میتوانید آن را در git log مشاهده کنید. البته برای ارور های کوچک بهتر است که فیکس مخصوص آن را ارائه دهید و آن را در شاخه ای که در حال کار کردن هستید push کنید.
ذخیره کار نیمه تمام
اگر از کار خسته شدهاید و هنوز آن را به جایی که مد نظر داشتهاید نرسانده اید و قصد دارید تا کد را در همان حالت رها کرده تا بعداً به سراغ آن بیایید میتوانید از دستور stash استفاده کنید مانند:
$ git stash Saved working directory and index state WIP on workbranch: 56cd5d4 Revert "update old files" HEAD is now at 56cd5d4 Revert "update old files"
این دستور کامیت قبلی خود را به عنوان مرجع قرار میدهد. میتوانید با دستور زیر stash های خود را مشاهده نمایید.
$ git stash list stash@{0}: WIP on workbranch: 56cd5d4 Revert "update old files" stash@{1}: WIP on project1: 1dd87ea commit "fix typos and grammar"
وقتی میخواهید روی stash قبلی کار کنید. موردی که میخواهید را همانند زیر استفاده کنید.
$ git stash apply stash@{1}
در ابتدای کار و برای شروع از کپی پیست و یا نگاه کردن بر روی این آموزش اصلاً نترسید. تمام کار هایی که با گیت میتوانید انجام دهید در اینجا تمام نخواهند شد و امکانات بسیار بیشتری نیز برای شما در اختیار خواهید داشت.