نصب گیت‌هاب

گبت‌هاب برنامه‌های رومیزی فراهم نموده است که شامل یک واسط گرافیکی برای بیشترکارهای عمومی مخازن هستند و یک نسخهٔ خط‌فرمان گیت که به صورت خودکار بروزرسانی می‌شود برای سناریوهای پیشرفته‌تر ارائه نموده است.

گیت‌هاب برای ویندوز

http://windows.github.com

گیت‌هاب برای مک

http://mac.github.com

توزیع‌های گیت برای لینوکس و سیستم‌های POSIX در سایت رسمی Git SCM در دسترس است.

گیت برای همهٔ سیستم‌ها

http://git-scm.com

آماده‌سازی پیکربندی

پیکربندی اطلاعات کاربر برای تمامی مخازن محلی

$ git config --global user.name "[name]"

نامی را که تمایل دارید به تراکنش‌های مشارکت خودتان نسبت داده شود تنظیم نمایید.

$ git config --global user.email "[email address]"

ایمیلی را که تمایل دارید به تراکنش‌های مشارکت خودتان نسبت داده شود تنظیم نمایید.

ساخت مخازن

یک مخزن جدید را شروع نمایید یا یکی از مخازن را از URL موجود بدست آورید.

$ git init [project-name]

یک مخزن محلی جدید با یک نام مشخص می‌سازد

$ git clone [url]

یک پروژه و تمام نسخه تاریخچه آن را بارگیری می‌نماید.

انجام تغییرات

مرور ویرایش‌ها و ساخت یک تراکنش مشارکت

$ git status

تمامی فایل‌های جدید و یا ویرایش شده‌ای که باید مشارکت داده شوند را لیست می‌نماید

$ git diff

تفاوت فایلی که هنوز قرارداده نشده است را نمایش می‌دهد

$ git add [file]

از فایل در حال آماده‌شدن یک تصویر لحظه‌ای برای نسخه‌برداری می‌گیرد (اضافه نمودن فایل به لیست مشارکت‌ها)

$ git diff --staged

تفاوت‌های فایل بین آخرین نسخه و نسخه آماده ارسال را نمایش می‌دهد

$ git reset [file]

فایل آماده ارسال از حالت ارسال خارج نموده لکن محتویات آن را نگاه می‌دارد

$ git commit -m"[descriptive message]"

تصاویر لحظه‌ای فایل‌ را به صورت دائمی در تاریخچه نسخه ذخیره می‌نماید.

تغیرات گروهی

نام‌گذاری یک سری از مشارکت‌ها و ترکیب‌ تلاش‌های موفق

$ git branch

تمامی شاخه‌های محلی را در مخزن جاری لیست می‌نماید

$ git branch [branch-name]

یک شاخهٔ جدید می‌سازد

$ git checkout [branch-name]

به شاخه تعیین‌شده سوئیچ نموده و دایرکتوری کاری را نیز تغییر می‌دهد

$ git merge [branch-name]

تاریخچهٔ شاخهٔ معین‌شده درون شاخه جاری ترکیب می‌نماید

$ git branch -d [branch-name]

شاخه تعیین‌شده را حذف می‌نماید

پیرایش نام فایل‌ها

بازجاگذاری و حذف فایل‌های نسخه‌بندی شده

$ git rm [file]

فایل را از شاخه جاری حذف نموده و حذف را نیز ثبت می‌نماید

$ git rm --cached [file]

فایل را از سیستم نسخه کنترل حذف نموده لکن به صورت محلی آن را نگاه می‌دارد

$ git mv [file-original] [file-renamed]

نام فایل را تغییر داده و آن را برای مشارکت آماده می‌نماید

جلوگیری از ردگیری

خارج‌نمودن فایل‌ها و مسیرهای موقتی
*.log
build/
temp-*
یک فایل متنی با نام .gitignore` از نسخه‌برداری اتفاقی فایل‌ها و مسیرهایی که با الگوی تعیین‌شده تطابق دارند جلوگیری می‌نماید

$ git ls-files --others --ignored --exclude-standard

تمامی فایل‌های صرف نظر شده در این پروژه را لیست می‌نماید

ذخیره سازی قطعات

کنار گذاشتن و بازیابی تغییرات ناکامل

$ git stash

به طور موقت تمامی فایل‌های ردگیری شده تغییر کرده را ذخیره می‌نماید

$ git stash pop

فایل‌هایی که اخیراً ذخیره شده است را بازیابی می‌نماید

$ git stash list

تمامی مجموعه تغییرات ذخیره شده را لیست می‌نماید

$ git stash drop

مجموعه تغییرات ذخیره شده اخیر را نادیده می‌گیرد

مرور تاریخچه

نمایش و بررسی سیر تکامل فایل‌های پروژه

$ git log

نسخه تاریخچه شاخه جاری را لیست می‌نماید

$ git log --follow [file]

نسخه تاریخچه فایل مشخصی بعلاوه تمامی تغییر نام‌های آن را لیست می‌نماید

$ git diff [first-branch]...[second-branch]

تفاوت‌های محتوایی بین دو شاخه را نشان می‌دهد

$ git show [commit]

متادیتا و تغییرات محتوای تغیر یک مشارکت مشخص‌شده را در خروجی نمایش می‌دهد

باز انجام یک مشارکت

حذف خطاها و ساخت تاریخچه جایگزین

$ git reset [commit]

تمامی مشارکت‌های پس از [commit] بدون اثر نموده و در عین حال تغییرات را به صورت محلی نگاه می‌دارد

$ git reset --hard [commit]

تمامی تاریخچه و تغییرات را تا مشارکت تعیین شده نادیده می‌انگارد

همگام‌سازی تغییرات

ثبت یک مخزن دوردست (URL) و تعویض تاریخچه مخزن

$ git fetch [remote]

تمامی تاریخچه را از مخزن دوردست بارگیری می‌نماید

$ git merge [remote]/[branch]

شاخه دوردست را درون شاخه محلی جاری ترکیب می‌نماید

$ git push [remote] [branch]

تمامی مشارکت‌های شاخه‌های محلی را به گیت‌هاب بارگذاری می‌نماید

$ git pull

نشان تاریخچه را بارگیری نموده و تغییرات را جاگذاری می‌نماید