آشنایی با Git: نصب و استفاده از Git

Installing Git

0 188

آشنایی با Git: نصب و استفاده از Git

در قسمت قبل توضیح دادم که سیستم های کنترل ورژن به شما اجازه می دهند بدون دغدغه هر تغییری را که خواستید روی پروژه ی خود اعمال کنید، چرا که هر نسخه از تغییرات توسط git ذخیره می شود و در صورتی که پروژه دچار مشکل شود می توانید به راحتی به نسخه های قبلی پروژه برگردید. بنابراین حتی اگر تمام پروژه را بهم بریزید جای هیچ نگرانی وجود نخواهد داشت.

توسعه دهندگان با استفاده از git می توانند موارد زیر را بررسی کنند:

  • چه تغییراتی در پروژه به وجود آمده است؟
  • چه کسی تغییرات را ایجاد کرده است؟
  • تغییرات در چه زمانی (تاریخ و ساعت) اعمال شده اند؟
  • چرا به چنین تغییراتی نیاز بوده است؟

حالا نوبت به نصب و استفاده از Git رسیده است…

چطور git را نصب کنم؟

نصب git بسیار ساده است:

  • اگر از لینوکس استفاده می کنید، Terminal را باز کرده و با استفاده از package manager خود git را نصب کنید. به طور مثال برای ubuntu می توانید از این کد استفاده کنید: sudo apt-get install git
  • اگر از ویندوز استفاده می کنید پیشنهاد ما استفاده از git for windows است چرا که به شما کلاینت GUI (اینترفیس گرافیکی) و BASH comand line emulator را نیز میدهد.
  • اگر از مک (OS X) استفاده می کنید، راحت ترین راه نصب homebrew و اجرای دستور brew install git است.

اگر هیچ آشنایی با Git ندارید پیشنهاد بنده این است که برای شروع به جای استفاده از command line و terminal های مختلف از محیط گرافیکی (GUI) استفاده کنید بنابراین GitHub Desktop و Sourcetree گزینه های خوبی هستند. البته گزینه های دیگری نیز وجود دارد که می توانید از آن ها استفاده کنید.

نکته: با تمام مواردی که گفته شد باید تاکید کنم که یادگیری دستورات ساده ی git (حتی اگر از یک GUI استفاده می کنید) بسیار مهم و ضروری است بنابراین تمرکز ما در این مقالات روی همین موضوع خواهد بود.

چطور git را پیکربندی کنم؟

حالا که Git در سیستم شما نصب شده است، باید تنظیمات پیکربندی را تصحیح کنیم. این دسته از تنظیمات بسیار طویل و متعدد هستند. بنابراین ما فقط مهم ترین ها را برای شما توضیح خواهیم داد: username و email (موارد دیگر را در این صفحه مشاهده کنید).

برای تنظیم username و email می توان گفت:

از این به بعد هر کاری که در git انجام دهیم با نام و ایمیل ما ثبت خواهد شد تا به طور مثال مشخص شود فردی که یک تغییر را ایجاد کرده، چه کسی بوده است.

نکته: این اطلاعات فقط برای مشخص کردن فردی است که تغییرات را ایجاد کرده است و هیچ ربطی به نام کاربری و ایمیل شما در سایت های GitHub و … ندارد.

چطور یک repository جدید بسازم؟

همانطور که قبلا گفته بودیم git تمام فایل های خود را در همان پوشه ی اصلی پروژه ی شما ذخیره می کند؛ بنابراین برای ساخت یک repository جدید باید terminal خود را باز کرده و به پوشه ی اصلی پروژه ی خود برویم، سپس دستور git init را اجرا کنیم. این دستور به Git اجازه می دهد که به این پوشه دسترسی داشته باشد و درون آن یک پوشه ی مخفی به نام git. نیز ایجاد کند. این پوشه مسئول ذخیره تاریخچه ی repository و پیکربندی پروژه است.

به طور مثال یک پوشه ی فرضی به نام git_exercise در دسکتاپ خود ایجاد کنید. حالا ترمینال خود را باز کرده و دستور زیر را اجرا کنید:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکان‌پذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

این پیام یعنی repo (مخفف Repository) ما با موفقیت ساخته شده است اما هنوز خالی است. حالا یک فایل ساده ی متنی به نام hello.txt درون پوشه ی git_exercise (پوشه ی اصلی پروژه ی تمرینی ما) ایجاد کرده و آن را ذخیره کنید.

بررسی وضعیت (status)

git status یکی دیگر از دستورات بسیار مهم git است که باید آن را بدانید. این دستور اطلاعاتی در رابطه با وضعیت فعلی repository ما برمی گرداند؛ به طور مثال: آیا همه چیز بروز رسانی شده است؟ چه چیز های جدیدی ایجاد شده اند؟ چه تغییراتی انجام شده است؟ و الی آخر…

دستور git status را درون ترمینال خود ایجاد کنید. خروجی باید به شکل زیر باشد:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکان‌پذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

پیام برگشتی به ما می گوید که hello.txt در حال حاضر ردیابی و رهگیری نمی شود (untracked است). به زبان ساده تر hello.txt تازه ساخته شده است و Git نمی داند که آیا باید تاریخچه ی تغییرات آن را ذخیره و دنبال کند یا خیر. برای این کار باید ابتدا آن را Stage کنیم…

مفهوم stage

Git مفهومی به نام staging area دارد که می توان به آن به عنوان یک بوم نقاشی سفید رنگ نگاه کرد و تغییرات شما مانند اثر قلم مو روی این بوم ثبت می شود. شما می توانید با استفاده از دستور git add فایل ها، بعضی از خط های یک فایل یا حتی آدرس فایل و … را به این محیط اضافه کنید. پس از آنکه تمام فایل های خود را اضافه کردید و از نتیجه راضی بودید با استفاده از دستور git commit می توانید یک commit یا snapshot از این تغییرات را ذخیره کنید.

در پروژه ی تمرینی ما فقط یک فایل متنی وجود دارد بنابراین می توان گفت:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکان‌پذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

فایل ما آماده ی commit شدن است. پاسخ برگشتی از status به ما میگوید که hello.txt یک فایل جدید است اما گر تغییرات بیشتری روی این فایل اتفاق بیفتد باید گزینه های modify و delete را نیز ببینیم. توجه داشته باشید که اگر می خواهید تغییراتی که اعمال می شود در تاریخچه ی پروژه ی شما باشد باید آن تغییرات را stage و سپس commit کنید. در غیر این صورت این تغییرات در تاریخچه (history) قرار نخواهند گرفت.

انجام commit

برای ایجاد یک commit (به معنی «ثبت» یا «مرتکب شدن») باید حداقل یک تغییر در staging area داشته باشیم. ما با استفاده از دستور git add در مرحله ی قبلی این تغییر را ایجاد کرده ایم. بنابراین می توان گفت:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکان‌پذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

این دستور یک commit جدید می سازد و تمام تغییرات staging area را در آن وارد می کند (در مثال ما اضافه شدن فایل hello.txt به staging area). قسمت -m “Initial commmit” نیز بسته به سلیقه ی شخصی شما نوشته می شود و به صورت خلاصه تغییرات اعمال شده در این commit را توضیح می دهد. توصیه می شود پروژه های خود را به صورت مکرر commit کرده و از توضیحات صریح و واضح برای ثبت آن ها استفاده کنید.

شما می توانید دیگر دستورات git را در documentation رسمی Git مشاهده کنید. همچنین من یک فایل cheat sheet برایتان قرار می دهم که به صورت خلاصه دستورات اصلی را در آن پیدا می کنید.

در قسمت بعد در رابطه با repository های آنلاین (مانند GitHub) صحبت می کنیم.

ترتیبی که روکسو برای یادگیری مطالب سری آشنایی با Git به شما توصیه می‌کند:

ارسال نظر

توجه:‌ آدرس ایمیل شما منتشر نخواهد شد.