ایجاد یک مخزن جدید
یک پوشه جدید ایجاد کنید وارد آن شوید و دستور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
لینکها و منابع
نرم افزارهای گرافیکی گیت
- GitX (L) (OSX, open source)
- Tower (OSX)
- Source Tree (OSX & Windows, free)
- GitHub for Mac (OSX, free)
- GitBox (OSX, App Store)
راهنماها
کمک برای گیت
منبع این مقاله
من باید برای گرفتن آخرین تغییرات از github از این فرمان ها می زدم که یادم رفته بود چی بود
:D
الان یادم اومد!