می خوام توی اولین پستم در ویرگول تمام اطلاعاتی که در مورد گیت جمع آوری کردم را در اختیار شما بزارم.
قبل از هر چیزی باید چواب چندتا سوال رو بدیم.
گیت چیست؟
گیت یک سیستم ورژن کنترل (VCS) است که محبوبیت زیادی دارد.
سیستم ورژن کنترل چیست؟
تغییراتی که در فایل های متنی ما ایجاد می شود را مدیریت می کند. میتوانیم تغییرات را نسخه بندی کرده و در هر زمان به تمام تغییرات ایجاد شده در فایل هایمان در هر نسخه دسترسی داشته و آنها را بررسی کنیم. همچنین به طور همزمان چند نفر می توانند بر روی یک پروژه کار کرده و کد های خود را در اختیار دیگران قرار دهند.
چگونه با گیت کار کنیم؟
شما میتونید روی سیستم خودتون نرم افزار گیت را دانلود کرده و از اون استفاده کنید؛و یا از سرویس های آنلاینی که خدمات گیت رو ارائه میدهند مانند گیت هاب و یا گیت لب استفاده کنید.
الان چی یاد میگیریم؟!
در واقع شما میتونید برای کار با گیت از محیط های گرافیکی(مثل این) که برای کار راحت تر با گیت طراحی شده اند استفاده کنید و یا به صورت کامندی دستورات گیت رو اجرا کنید، توی این آموزش ما دستورات رو یاد میگیریم و گیت رو به صورت کامندی استفاده می کنیم.
حالا بریم سراغ آموزشمون:
اول از همه باید یک ریپوزیتی (repository) داشته باشیم ، محلی که اطلاعاتی که گیت جمع آوری میکنه و بهش نیاز داره اونجا قرار میگیره. پس یه پوشه جدید میسازیم و این دستور رو توی اون اجرا می کنیم
git init
همچنین می تونیم از ریپوزیتی که شخص دیگری ساخته و باهاش کار کرده استفاده کنیم ، برای اینکار باید اون رو از یک محل دیگه کلون (clone) کنیم
git clone /path/to/repository
یا برای دریافت از سرور
git clone username@host:/path/to/repository
ریپوزیتی ما دارای سه ساختار درختی هست که توسط گیت کنترل میشه. اولی تمام فایل هایی هست که توی پوشه ای که گیت اون رو کنترل میکنه وجود دارند،دومی index هست که فایل هایی که اونها رو توسط گیت کنترل می کنیم و در حال ویرایش اونا هستیم رو شامل میشه و آخری هم head هست که فایل های نهایی مون رو توی خودش داره.
مایک ریپوزیتی ساختیم ، حالا باید فایل هایی که میخوایم گیت تغییرات اون ها رو ذخیره کنه رو بهش معرفی کنیم
git add <filename>
یا برای افزودن تمام فایل هایی که داخل پوشمون هست
git add *
الان تغییراتمون ذخیره نمیشه برای ذخیره کردن اونها باید دستور زیر رو اجرا کنیم همچنین باید یه توضیحی در مورد تغییراتی که انجام دادیم رو به همراه اونا ذخیره کنیم که بعدا برای فهمیدن اینکه چیکار کردیم کمکمون کنه
git commit -m "Commit message"
برای رفتن به یک commit و ادامه توسعه از اون دستور زیر رو استفاده کرده که f6b4a68485 شناسه commit ای که میخوایم به اون بریم هست
git checkout f6b4a68485
توصیه میشه برای نسخه هایی از پروژتون که تکمیل میشه یک تگ اضافه کنید ، تا بعدا بهتر به نسخه بندی هاتون دسترسی داشته باشید.
در دستور زیر 1.0.0 نسخه نرم افزارتون و f6b4a68485 شناسه کامیتی که انجام دادین هست(توسط دستور بعدی میتونید اون رو بدست بیارید)
git tag 1.0.0 f6b4a68485
برای بررسی commit هایی که انجام دادیم همراه با اطلاعات کامل(مثل id ،زمان انجام ،کاربر ارسال کننده و ...) میتونیم از دستور زیر استفاده کنیم
git log
برای بررسی تغییرات ایجاد شده در یک فایل
git diff file_name
ما می تونیم تغییراتمون رو توی شاخه های مختلف انجام بدیم! یعنی مثلا چندتا شاخه بسازیم و یکی از اونها برای توسعه گرافیک پروژه ، دیگری برای منطق پروژه و ... باشه و به صورت و موازی هر کسی یک شاخه رو توسعه بده و در آخر مدیر پروژه در صورت تایید یا انجام ویرایشی اونها رو به شاخه اصلی (master) متصل کنه.
برای ساختن شاخه جدید با نام graphic و رفتن به اون
git checkout -b graphic
و برای رفتن به شاخه master
git checkout master
و برای اتصال ترکیب یک شاخه با شاخه ای که الان در اون هستیم
git merge <branch>
وبرای حذف شاخه graphic
git branch -d graphic
همچنین میتونیم تفاوت های دو شاخه رو با هم ببینیم
git diff <source_branch> <target_branch>
حالا میتونیم پروژمون رو روی یک ریپوزیتی آنلاین هم داشته باشیم برای اینکار میتونیم از گیت هاب و یا سرویس های مشابه که گیت رو ارائه می دهند استفاده کرده و یا روی سرور خودمون ازش استفاده کنیم.
اول باید یک ریموت که دارای آدرس سرورمون هست رو بسازیم
git remote add origin <server>
و برای ارسال شاخه master توسط ریموت origin
git push origin master
و اگر بخواهیم آخرین تغییرات رو از سرور دریافت کنیم
git pull