یک چیت‌شیت برای شروع کار با گیت و گیت هاب

1329
یادگیری گیت

حتماً برایتان پیش آمده است که آن‌قدر کدتان را خراب کرده باشید که احساس کنید اگر از اول شروع کنید، کارتان راحت‌تر است. با استفاده از کنترل نسخه (Version Control)، به‌راحتی می‌توانید به همان نسخه قبلی که کار می‌کرد، برگردید و دیگر اثری از ایده‌های دیوانه‌وار شما در ساعت 2 شب روی کدها نیست.

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

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

گیت و گیت هاب

گیت (Git) یک سیستم کنترل نسخه است. در واقع، یک سیستم کنترل نسخه توزیع‌شده (distributed version control system یا DVCS) است که در خط فرمان (command line) اجرا می‌شود. به زبان ساده، گیت تاریخچه اتفاقات یک پروژه را ذخیره می‌کند. تاریخچه پروژه شما و پروژه‌ی یکسانی که هم‌تیمی‌های شما روی آن کار می‌کنند، همگی کپی‌های مجزایی خواهند داشت. این درست برعکس یک SVN (ساب‌ورژن) است که در آن تمام تاریخچه در یک محل ذخیره می‌شود.

گیت هاب (GitHub) که اکثراً با گیت اشتباه گرفته می‌شود، در اصل یک ریپازیتوری‌ خدمات میزبانی برای پروژه شما است. ممکن است دقیقاً متوجه نشوید که منظور از ریپازیتوری‌ چیست، ولی صبور باشید، در ادامه متن به پاسخ سؤالتان خواهید رسید. گیت هاب به توضیحات زیادی نیاز دارد، ولی فعلاً آن را خیلی ساده تعریف می‌کنیم. گیت هاب جایی است که شما تاریخچه استفاده خودتان از گیت را آپلود می‌کنید. گیت هاب به شما و هم‌تیمی‌هایتان این امکان را می‌دهد تا همواره بتوانید آخرین نسخه از پروژه خود را در اختیار داشته باشید و در عین حال بدون اینکه مانع کار یکدیگر شوید، به‌طور همزمان روی یک پروژه کار کنید.

مطلب مشابه: 5 ریپازیتوری‌‌ گیت هاب که هر توسعه‌دهنده‌ای باید بشناسد

همین الان یادگیری گیت را شروع کنید

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

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

چیت‌شیت

با استفاده از ترمینال یا همان Git Bash در ویندوز، پوشه اصلی پروژه را پیدا کنید. اگر از Git Bash استفاده می‌کنید، می‌توانید روی پوشه پروژه راست کلیک کرده و گزینه Git bash here را انتخاب کنید تا ترمینال Git Bash در آن مسیر باز شود. 

git config

اولین کاری که باید انجام دهید این است که خودتان را به گیت معرفی کنید تا از این پس در هر کامیتی اطلاعات شما را ذخیره کند.

git config --global user.name "Your Name"
git config --global user.email "youremail@mail.com"

این فرمان اطلاعات شما را هرباری که commit می‌کنید، ثبت می‌کند. این فرمان تنها یک بار و پس از نصب گیت انجام می‌شود.

git init

این فرمان یک ریپازیتوری‌ لوکال (محلی) برای پروژه شما می‌سازد. ریپازیتوری‌ یا به اختصار ریپو تاریخچه‌ای از مجموعه تمام تغییراتی است که شما در طول زمان روی پروژه خود ایجاد کرده‌اید. این اولین کاری است که باید در شروع یک پروژه جدید انجام دهید.

git add filename.extension

هر فایلی که قصد دارید اضافه کنید (مثل index.html) را جایگزین filename.extention کنید. این فرمان فایلی که مشخص کرده‌اید را به staging area اضافه می‌کند. staging area را بخشی فرض کنید که تغییرات همه‌چیز توسط گیت دنبال می‌شود تا بعداً به ریپازیتوری منتقل شود.

git add .

این فرمان به شما این امکان را می‌دهد تا به‌جای اینکه هر فایل را به‌صورت جداگانه به staging area اضافه کنید، تمام پوشه پروژه را به staging area منتقل کنید.

git status

این دستور نشان می‌دهد که چه فایل‌هایی به staging area اضافه شده‌اند و چه فایل‌هایی تغییر کرده‌اند و باید به staging area اضافه شوند.

git reset filename.extension

این فرمان فایل مشخص‌شده را از staging area حذف می‌کند.

git rm --cached filename.extension

این فرمان نه‌تنها فایل را از staging area، بلکه از سیستم خودتان نیز حذف می‌کند و آن فایل دیگر قابل‌ردیابی نخواهد بود.

git commit -m "Description of the commit"

این فرمان فایل‌ها و تغییرات آن‌ها که در staging area موجود است را در ریپازیتوری‌ محلی (local repository) اعمال می‌کند. در داخل کوتیشن (“”) نیز، خلاصه‌ای از تغییرات هر commit نوشته می‌شود و به آن پیام کامیت می‌گویند. سعی کنید پیام commit را با اطلاعاتی خلاصه و گویا مثل «مشکل آپدیت نشدن نام کاربر دیباگ شد» توصیف کنید، نه عباراتی مبهم و گنگ مثل «اعمال برخی تغییرات».

git remote

این دستور لیستی از تمام ریپازیتوری‌های ریموت که مرتبط با پروژه شما هستند را نمایش می‌دهد.

git push -u origin master

این دستور ریپازیتوری محلی شما را به ریپازیتوری‌ ریموت شما منتقل می‌کند. این دستور باید برای بار اول، دقیقاً به همین شکل نوشته شود. این دستور برای اولین push در ریپازیتوری ریموت شماست.

git push

این فرمان برای ارسال کد و تغییرات شما به ریپازیتوری ریموت‌ پس از push اولیه‌ (دستور قبلی) است.

git clone https://github.com/userName/project.git

اگر پروژه را بر روی کامپیوتری که کار می‌کنید، ندارید، این فرمان اجازه ساخت یک کلون یا دانلود تمام پروژه را به شما می‌دهد.

git pull

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

امیدوارم این مقاله برای شما فهم اولیه‌ای از گیت برای شروع کار با آن فراهم کرده باشد. گیت زیر‌و‌بم‌های بسیار بیشتری دارد که باید یاد بگیرید. شما می‌توانید برای تکمیل دانش خود، از دوره‌ی آموزش گیت کوئرا کالج استفاده کنید.

آموزش برنامه نویسی با کوئرا کالج
علیرضا اسماعیلی

ممکن است علاقه‌مند باشید
اشتراک در
اطلاع از
guest

0 دیدگاه‌
بازخورد (Feedback) های اینلاین
View all comments