نصب گیتهاب
گبتهاب برنامههای رومیزی فراهم نموده است که شامل یک واسط گرافیکی برای بیشترکارهای عمومی مخازن هستند و یک
نسخهٔ خطفرمان گیت که به صورت خودکار بروزرسانی میشود برای سناریوهای پیشرفتهتر ارائه نموده است.
گیتهاب برای ویندوز
https://windows.github.com
گیتهاب برای مک
https://mac.github.com
توزیعهای گیت برای لینوکس و سیستمهای POSIX در سایت رسمی Git SCM در دسترس است.
گیت برای همهٔ سیستمها
https://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 switch -c [branch-name]
به شاخه تعیینشده سوئیچ نموده و دایرکتوری کاری را نیز تغییر میدهد
$ git merge [branch-name]
تاریخچهٔ شاخهٔ معینشده درون شاخه جاری ترکیب مینماید
$ git branch -d [branch-name]
شاخه تعیینشده را حذف مینماید
پیرایش نام فایلها
بازجاگذاری و حذف فایلهای نسخهبندی شده
$ git rm [file]
فایل را از شاخه جاری حذف نموده و حذف را نیز ثبت مینماید
$ git rm --cached [file]
فایل را از سیستم نسخه کنترل حذف نموده لکن به صورت محلی آن را نگاه میدارد
$ git mv [file-original] [file-renamed]
نام فایل را تغییر داده و آن را برای مشارکت آماده مینماید
جلوگیری از ردگیری
خارجنمودن فایلها و مسیرهای موقتی
یک فایل متنی با نام
.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
نشان تاریخچه را بارگیری نموده و تغییرات را جاگذاری مینماید