آموزش مقدماتی گیت و گیت هاب - پارت اول

آموزش مقدماتی گیت و گیت هاب - پارت اول

گیت یک سیستم مدیریت کد منبع توزیع شده است که میتوانید کدهایتان را با آن در سیستم شخصی تان مدیریت کنید و تغییرات آنها را داشته باشید، به تغییراتی در گذشته برگردید مثلا به release خاصی از پروژه، کدها را روی یک سرور گیت (مانند گیت هاب) با دیگران به اشتراک بگذارید و گروهی روی توسعه‌ی یک پروژه همکاری کنید و از تغییراتی که هر عضو روی پروژه میدهد آگاهی یابید.

به پروژه‌هایی که در آنها Git استفاده میشود مخزن ( repository ) میگویند. بک مخزن گیت حاوی تمامی کدها، تغییرات کد و تنظیمات گیت برای آن پروژه است.

در سیستم‌های توزیع‌شده هرکسی که به مخزن اصلی دسترسی دارد، می تواند یک کپی از مخزن اصلی را در اختیار داشته و تغییرات خود را روی آن اعمال کند و همچنین می‌تواند این تغییرات را با تغییرات بقیه‌ی اعضا ترکیب کرده و یا به مخزن اصلی اضافه کند.

گیت

برای آشنایی نحوه کار با گیت‌هاب، ابتدا باید با گیت آشنا شویم. گیت یک سیستم کنترل نسخه‌ی متن‌ باز است که توسط خالق لینوکس، لینوس تروالدز، ساخته شد. گیت مانند سایر سیستم‌های کنترل نسخه از قبیل ساب‌ورژن، CVS و مرکوریال است؛ اما اساسا سیستم کنترل نسخه چیست؟ وقتی توسعه‌دهندگان چیز جدیدی مانند یک اپلیکیشن خلق می‌کنند، مدام تغییراتی در کدهای آن می‌دهند تا اولین نسخه‌ی رسمی و غیر بتا آماده‌ی انتشار شود. این روند در به‌روزرسانی برای نسخه‌های بعدی نیز ادامه دارد.

سیستم‌های کنترل نسخه تغییرات و بازنگری‌های توسعه‌دهندگان را در یک مخزن مرکزی ذخیره می‌کنند. با این کار همکاری بین توسعه‌دهندگان آسان می‌شود؛ به این شکل که هر توسعه‌دهنده می‌تواند نسخه‌ی جدید را دانلود کند، تغییرات را در آن اعمال و سپس آپلود کند. کلیه‌ی توسعه‌دهندگان قادر به مشاهده‌ی تغییرات جدید، دانلود آن‌ها و مشارکت در پروژه خواهند بود.

همچنین، کسانی که نقشی در پروژه ندارند، می‌توانند فایل‌های آن را دانلود و استفاده کنند. کاربران حرفه‌ای لینوکس احتمالا با این روند آشنایی کامل دارند؛ چرا که استفاده از گیت، ساب‌ورژن و سرویس‌های مشابه از ملزومات کامپایل کردن یک برنامه از سورس‌کد آن است.

آموزش کار با گیت

نیازهای بنیادی

قبل از هرچیز لازم است نسخه مرتبط سیستم عامل خود را از سایت Git دانلود و نصب کنید. اگر از لینوکس استفاده می‌کنید، از طریق پکیج منیجر نیز می‌توانید اقدام کنید.

راه‌اندازی یک مخزن (Repository)

قبل از شروع کار با گیت، باید یک مخزن پروژه راه‌اندازی کنید تا به کمک گیت آن را مدیریت کنید. ترمینال را باز کنید و در دایرکتوری پروژه‌ی خود دستور . git init را وارد کنید.


آموزش گیت

با این کار یک دایرکتوری مخفی با نام git. در دایرکتوری پروژه‌ی شما ایجاد خواهد شد. این دایرکتوری همان مسیری است که گیت دیتابیس و تنظیمات خود را در آن ذخیره می‌کند تا تغییرات پروژه‌ی شما را دنبال کند.

کلون یا کپی کردن یک مخزن

راه دیگری برای دسترسی به مخزن وجود دارد که به کلونینگ مشهور است. درست مثل بررسی مخزن در سایر سیستم‌ها، اجرای کد git clone <repository URL> یک کپی کامل از مخزن مورد نظر به سیستم شما منتقل خواهد کرد. سپس، می‌توانید تغییرات دلخواه را در آن اعمال کنید. روند اعمال تغییرات ساخت تغییرات، اعمال موقت آن‌ها بدون وارد کردن در مخزن اصلی (staging)، اعمال تغییر در مخزن یا کامیت (commit) را شامل می‌شود.

افزودن فایل جدید

در این مرحله می‌توان از زبان‌های برنامه‌نویسی مختلف مانند پایتون، روبی، Go یا هر زبان دیگری استفاده کرد. ما در این آموزش از زبان php که معمول‌تر است استفاده می‌کنیم. فایلی به نام index.php را در دایرکتوری خود ایجاد و کد زیر را در آن وارد کنید.

<?php echo "Hello World"; ?>
بعد از ذخیره‌ی فایل، دستور git status را از ترمینال اجرا کنید. این دستور وضعیت حاضر مخزن کار شما را نشان می‌دهد. نتیجه‌ی به نمایش درآمده باید مشابه تصویر زیر باشد که در آن index.php به‌عنوان یک فایل untracked یا بررسی‌نشده فهرست شده است.

آموزش گیت

حالا طرز کار با چند فایل بدون اعمال تغییرات در مخزن را بررسی می‌کنیم. برای این‌کار یک فایل دوم به نام README.md بسازید. در این فایل جزئیاتی مثل نام پروژه، نام و نشانی ایمیل خود را وارد کنید. دستور git status را مجددا اجرا کنید. خواهید دید که این‌بار دو فایل به‌عنوان بررسی‌نشده فهرست شده‌اند.

آموزش گیت

حالا می‌خواهیم index.php را stage کنیم. فایلی که استیج می‌شود؛ یعنی تغییرات آن انجام گرفته اما هنوز در مخزن اصلی اعمال نشده است. برای این‌کار دستور git add index.php را وارد کنید. حالا، دستور وضعیت گیت (git status) را مجددا اجرا کنید. خواهید دید که index.php به‌عنوان فایلی جدید در بخش تغییرات در انتظار اعمال (changes to be commited) فهرست شده است و README.md در همان بخش Untracked files قرار دارد.

آموزش گیت

تنظیمات

در این مرحله همه‌چیز آماده‌ی اعمال تغییرات یا commit است؛ اما قبل از این‌کار باید با تنظیمات ویرایشگر که گیت هنگام نوشتن پیام‌های کامیت مورد استفاده قرار می‌دهد آشنا شوید.

اگر از لینوکس استفاده می‌کنید گیت به‌طور پیش‌فرض، از برنامه‌‌هایی مانند pico، vi، vim یا emacs استفاده خواهد کرد. اگر با این برنامه‌ها آشنایی ندارید، ممکن است بخواهید آن‌ها را با نرم‌افزاری مثل Notepad، TextEdit یا Gedit عوض کنید. برای این‌کار دستور زیر را از ترمینال اجرا کنید:

git config --global core.editor your app's name

در قسمت آخر کد به جای your app's name نام نرم‌افزار مورد نظر خود را وارد کنید.

تنظیمات دیگری مانند تغییر نام و ایمیل و چگونگی نمایش پیام کامیت نیز قابل انجام است. ما در این آموزش از vim به‌عنوان ادیتور استفاده می‌کنیم؛ اما شما می‌توانید انتخاب متفاوت خود را داشته باشید.

اعمال اولین تغییر

commit در گیت شباهت بسیار زیادی با commit در سایر سیستم‌های کنترل نسخه مانند ساب‌ورژن دارد. روند کار به این شکل است که کار را آغاز می‌کنید و پیامی جهت توضیح اینکه دلیل تغییر انجام گرفته چیست وارد می‌کنید و فایل تغییر می‌یابد. پس دستور git commit را اجرا کنید. با این کار ویرایشگر به‌صورت خودکار باز می‌شود و الگوی زیر را نمایش می‌دهد.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
#
# Initial commit
#
# Changes to be committed:
#       new file:   index.php
#
# Untracked files:
#       README.md
#


با بررسی مداوم وضعیت تغییرات اعمال‌شده توسط دستور git status از شرایط مخزن خود آگاهی پیدا خواهید کرد. با این‌کار همواره خواهید دانست چه تغییری را اعمال کرده و چه تغییری را هنوز اعمال نکرده‌اید. یک پیام کامیت خوب باید شامل دو بخش باشد؛ اول این‌که کوتاه و در حد 72 کاراکتر باشد و به‌طور خلاصه تغییر اعمال‌شده را اعلام کند. دیگر این‌که دارای توضیحی بلندتر باشد که به‌طور مجزا در سطری دیگر جزئیات تغییر اعمال‌شده را توضیح دهد. البته مورد دوم اختیاری است و الزامی برای نوشتن آن وجود ندارد.

ما در این مرحله نیاز به نوشتن توضیح پیچیده‌ای نداریم؛ چرا که تنها یک فایل را به مخزن اضافه کرده‌ایم؛ اما چنان‌چه تغییری که اعمال می‌کنید دارای الگوریتم‌های پیچیده‌ای باشد، لازم است توضیحاتی در این بخش برای مطالعه‌ی سایر توسعه‌دهندگان بنویسید و آن‌ها را از چرایی اعمال این تغییر آگاه سازید. بنابراین، پیام ساده‌ی زیر را در ویرایشگر وارد و ذخیره کنید و خارج شوید.

“Adding the core script file to the repository”

حالا که تغییرات اعمال شدند. وضعیت گیت را مجددا بررسی کنید. خواهید دید که REDME.md همچنان در قسمت untracked قرار دارد.

آموزش گیت

مشاهده‌ی تغییرات

در این مرحله از آن‌جایی که چند فایل در قسمت کنترل نسخه داریم و با دستورهای پایه آشنا شده‌ایم، به بررسی تغییرات می‌پردازیم. برای بررسی تغییرات اعمال‌شده در یک فایل از دستور git diff استفاده می‌کنیم. این دستور مشابه دستور Linux diff دو فایل را با هم مقایسه می‌کند و تغییرات فایل جدیدتر را نمایش می‌دهد.

در اینجا برای مشاهده‌ی تغییرات فایل README.md دستور git diff README.md را اجرا می‌کنیم. با این‌کار تغییرات جدیدترین نسخه نسبت به اولین نسخه به نمایش درمی‌آید.

به خاطر داشته باشید که به‌طور پیش‌فرض، دستور git diff تغییرات را نسبت به فایل اولیه نشان می‌دهد، نه فایل استیج‌شده. اگر می‌خواهید تغییرات استیج‌شده را مشاهده کنید، دستور git diff --cached README.md را اجرا کنید. این دستور چیزی شبیه کد زیر را به نمایش درخواهد آورد.

diff --git a/README.md b/README.md new file mode 100644 index 0000000..27c0a86 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Simple Git Project + +## Authors + +Matthew Setter <matthew@maltblue.com>

در کد نمایش داده‌شده به پنج خط آخر دقت کنید. قبل از هر سطر یک علامت + وجود دارد. این علامت نشانگر افزودن چیزی به فایل است. در اینجا ما فقط اضافه کرده‌ایم؛ اما اگر چیزی حذف کرده بودیم علامت منفی (-) نمایش داده می‌شد.

مطالب مشابه