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

Introduction to Git: Installing and Using Git

25 بهمن 1399
درسنامه درس 3 از سری آشنایی با Git
آشنایی با 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 config --global user.name "My Name"
$ git config --global user.email myEmail@example.com

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

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

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

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

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

// رفتن به دیرکتوری مورد نظر
$ cd Desktop/git_exercise/

// ایجاد یک repository جدید
$ git init

حالا ترمینال شما باید چنین پاسخی را بدهد:

Initialized empty Git repository in /home/user/Desktop/git_exercise/.git/

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

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

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

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

$ git status

On branch master

Initial commit

Untracked files:
  (use "git add ..." to include in what will be committed)

    hello.txt

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

مفهوم stage

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

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

$ git add hello.txt

اگر می خواهید همه چیز در دیرکتوری add شود میگویید:

$ git add -A

حالا اگر دوباره وضعیت (status) را چک کنیم باید نتیجه متفاوتی داشته باشیم:

$ git status

On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached ..." to unstage)

    new file:   hello.txt

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

انجام commit

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

$ git commit -m "Initial commit."

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

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

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

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

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

-
12 تیر 1400
ترتیبه جلسه 2 و جلسه 3 اشتباه هست

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

ilya
02 مرداد 1399
سلام ممنون از آموزش خوبتون من یک مشکل فلسفی با گیت بش دارم اینکه وقتی میخوام اجراش کنم  انگار هیچ اتفاقی نمیوفته نه اخطاری نه کرش کردنی فقط هیچی نمیشه بخاطر همین مشکل یابی ش هم برام سخته ممنون میشم کمک کنید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.