در قسمت قبل توضیح دادم که سیستم های کنترل ورژن به شما اجازه می دهند بدون دغدغه هر تغییری را که خواستید روی پروژه خود اعمال کنید، چرا که هر نسخه از تغییرات توسط git ذخیره می شود و در صورتی که پروژه دچار مشکل شود می توانید به راحتی به نسخه های قبلی پروژه برگردید. بنابراین حتی اگر تمام پروژه را بهم بریزید جای هیچ نگرانی وجود نخواهد داشت.
توسعه دهندگان با استفاده از git می توانند موارد زیر را بررسی کنند:
حالا نوبت به نصب و استفاده از Git رسیده است...
نصب git بسیار ساده است:
sudo apt-get install git
brew install git
است.اگر هیچ آشنایی با Git ندارید پیشنهاد بنده این است که برای شروع به جای استفاده از command line و terminal های مختلف از محیط گرافیکی (GUI) استفاده کنید بنابراین GitHub Desktop و Sourcetree گزینه های خوبی هستند. البته گزینه های دیگری نیز وجود دارد که می توانید از آن ها استفاده کنید.
نکته: با تمام مواردی که گفته شد باید تاکید کنم که یادگیری دستورات ساده git (حتی اگر از یک GUI استفاده می کنید) بسیار مهم و ضروری است بنابراین تمرکز ما در این مقالات روی همین موضوع خواهد بود.
حالا که Git در سیستم شما نصب شده است، باید تنظیمات پیکربندی را تصحیح کنیم. این دسته از تنظیمات بسیار طویل و متعدد هستند. بنابراین ما فقط مهم ترین ها را برای شما توضیح خواهیم داد: username و email (موارد دیگر را در این صفحه مشاهده کنید).
برای تنظیم username و email می توان گفت:
$ git config --global user.name "My Name" $ git config --global user.email myEmail@example.com
از این به بعد هر کاری که در git انجام دهیم با نام و ایمیل ما ثبت خواهد شد تا به طور مثال مشخص شود فردی که یک تغییر را ایجاد کرده، چه کسی بوده است.
نکته: این اطلاعات فقط برای مشخص کردن فردی است که تغییرات را ایجاد کرده است و هیچ ربطی به نام کاربری و ایمیل شما در سایت های GitHub و ... ندارد.
همانطور که قبلا گفته بودیم 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 (پوشه اصلی پروژه تمرینی ما) ایجاد کرده و آن را ذخیره کنید.
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 کنیم...
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 (به معنی «ثبت» یا «مرتکب شدن») باید حداقل یک تغییر در 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) صحبت می کنیم.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.