مطالب آموزشی و اطلاعات پیرامون برنامه نویسی، برنامه نویسی مبتنی بر وب و مهندسی نرم افزار

آخرین نظرات

راهنمای سریع و ساده گیت - git

چهارشنبه, ۴ شهریور ۱۳۹۴، ۱۱:۳۵ ب.ظ

ایجاد یک مخزن جدید

یک پوشه جدید ایجاد کنید وارد آن شوید و دستور
git init
را برای ایجاد یک مخزن جدید گیت اجرا نمایید.

دریافت یک مخزن

با استفاده از دستور زیر میتوانید یک کپی از مخزن لوکال در کامپیوتر خود ایجاد نمایید
git clone /path/to/repository

اگر مخزن شما در یک سرور ریموت باشد از دستور زیر استفاده کنید
git clone username@host:/path/to/repository

روند کار

مخزن محلی (local) شما شامل سه درخت است که توسط گیت نگهداری میشود. اولی Working Directory می باشد که فایلهای واقعی شما را نگه میدارد. دومیIndex است که به عنوان لایه عملیاتی گیت عمل میکند و در آخر HEAD که به آخرین کامیتی که انجام داده اشاره میکند.

اضافه کردن و اعمال

میتوانید تغییرات را برای اعمال نامزد کنید(آنها را به  اIndex اضافه نمایید)  با دستورات زیر
git add <filename>
git add *

این اولین گام در یک روند کاری گیت است. برای اینکه تغییرات بصورت واقعی روی مخزن اعمال شود :
git commit -m "Commit message"

حالا تغییرات در HEAD اعمال شده اند ، اما هنوز در سرور راه دورتان اعمال نشده اند.

ارسال تغییرات

اکنون تغییرات شما در HEAD دایرکتوری لوکال شما که در حال کار روی آن می باشید هستند. برای ارسال تغییرات به سرور دستور زیر را اجرا کنید.
git push origin master


عبارت master را میتوانید به هر شاخه ای که میخواهید تغییرات روی آن اعمال شود تغییر دهید.

اگر از یک مخزن موجود clone نکرده اید و میخواهید به یک سرور راه دور وصل شوید آن را با دستور زیر اضافه کنید.
git remote add origin <server>
حال قادر خواهید بود تغییرات را به سرور راه دور انتخابی خود ارسال کنید.

شاخه بندی

از شاخه ها برای ایجاد ویژگی مجزا از یکدیگر استفاده میشود. شاخه master شاخه پیش فرض در هنگام ایجاد یک مخزن می باشد. از شاخه های دیگر برای توسعه ویژگیها استفاده کنید و سپس پس از تکمیل آنها را با شاخه master ادغام کنید.

یک شاخه جدید با نام feature_x ایجاد کنید و با استفاده دستور زیر به آن سوییچ کنید.
git checkout -b feature_x

دوباره به شاخه master سوییچ کنید
git checkout master

شاخه قبلی را حذف کنید:
git branch -d feature_x

یک شاخه در دسترس دیگران نخواهد بود تا زمانی که تغییرات را به سرور ریموت ارسال کنید:
git push origin <branch>

بروزرسانی و ادغام

برای بروزرسانی مخزن لوکال خود با آخرین تغییرات از git pull در دایرکتوری درحال کار خود برای fetch و merge تغییرات ریموت استفاده کنید.

برای ادغام شاخه ای دیگر با شاخه فعلی از دستور زیر استفاده کنید:
git merge <branch>

در هر دو مورد گیت سعی خواهد کرد بصورت خودکار تغییرات را ادغام کند. اما این همیشه ممکن نخواهد بود و گاهی تداخلخواهید داشت. شما مسئول ادغام این تداخلها بصورت دستی با ویرایش فایلهایی که گیت به شما خواهد گفت هستید. بعد از تغییرات باید آنها را به عنوان ادغام شده علامت بزنید:
git add <filename>

قبل از ادغام تغیرات میتوانید پیش نمایشی از آنها با دستور زیر داشته باشید
git diff <source_branch> <target_branch>

برچسب گذاری

پیشنهاد میشود که برای انتشار نرم افزارهایتان تگ ایجاد کنید. این یک مفهوم آشناست که در SVN هم وجود دارد. میتوانید یک تگ جدید با نام 1.0.0 با استفاده از دستور زیر ایجاد کنید:
git tag 1.0.0 1b2e1d63ff

عبارت 1b2e1d63ff ده کاراکتر اول از آی دی commit ای است که میخواهید تگتان به آن اشاره کند. میتوانید آی دی کامیت را از ....

لاگ

در ساده ترین فرم میتوانید تاریخچه مخزن را با استفاده از دستور زیر مشاهده کنید: git log

میتوانید با پارامترهای مختلفی لاگتان را آن طور که میخواهید دریافت کنید. مثلا برای اینکه فقط کامیتهای یک توسعه دهنده خاص را ببینید :
git log --author=bob

برای اینکه یک لاگ بسیار فشرده که در آن هر کامیت در یک خط است ببینید:
git log --pretty=oneline

شاید بخواهید که یک درخت ASCII art از شاخه هایتان که از تگها و شاخه ها درست شده ببینید:
git log --graph --oneline --decorate --all

فقط فایلهایی را که تغییر کرده اند ببینید:
git log --name-status

این ها فقط برخی از پارامترهایی بود که میتوانید استفاد کنید. برای اطلاعات بیشتر: git log --help

جایگزینی تغییرات محلی

با اینکه احتمال آن وجود ندارد ;) اما اگر اشتباهی رخ داد میتوانید تغییرات محلی را با دستور زیر جایگزین کنید:
git checkout -- <filename>

این دستور تغییرات نسخه در حال کار شما را با آخرین محتوای HEAD جایگزین میکند. تغییراتی که به index اضافه شده اند مثل فایلهای جدید نگه داشته میشوند.

اگر میخواهید تمام تغییرات محلی و کامیتها را دور بیندازید میتوانید آخرین تغییرات را از سرور fetch کنید و شاخه master محلی خود را به آن ارجاع دهید.
git fetch origin
git reset --hard origin/master

نکات مفید

رابط کاربری گیت
gitk

خروجی رنگی گیت
git config color.ui true

نمایش لاگ بصورت یک خط برای هر کامیت
git config format.pretty oneline

استفاده از افزودن فایل بصورت تعاملی
git add -i

لینکها و منابع

نرم افزارهای گرافیکی گیت

 

 

راهنماها

 

 

کمک برای گیت

 

منبع این مقاله

 

نظرات (۲)
  • ایمان شادمهری
  • من با یکی از دوستام یه پروژه مشترک رو شروع کردیم
    من باید برای گرفتن آخرین تغییرات از github از این فرمان ها می زدم که یادم رفته بود چی بود
    :D
    الان یادم اومد!
    پاسخ:
    پس خوش به حال دوستتون شد D:
  • ایمان شادمهری
  • بله دقیقا
    :D
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی