منبع اصلی نوشتار زیر در این لینک قرار دارد

گیت‌هاب برای تازه کارها: نترسید! شروع کنید

سلام

بعیده توی دنیای امروز کسی از گیت چیزی نشنیده باشه، اگر هم چنین کسی رو پیدا بکنید قطعا کسی وجود نداره که برای یک بار هم شده که گذرش به گیت‌هاب نخورده باشه!

زمانی که خواستم گیت رو یاد بگیرم خیلی دنبال یه آموزش ساده بودم که بعد از کلی گشتن به مقاله‌ی GitHub For Beginners: Don’t Get Scared, Get Started رسیدم. مقاله‌ی خیلی ساده و جامعی که برای شروع کار با گیت به نظرم خیلی خوب هست. یه ترجمه‌ی ناقص از این مقاله به فارسی توی نت بود که همین ناقص بودنش دلیلی شد برای اینکه تصمیم بگیرم به صورت کامل مقاله رو ترجمه کنم. ضمن اینکه تجربه‌های خودم از کار با گیت رو هم به مقاله اضافه کنم. خودم توی کار با گیت به شدت تازه کار هستم. و یکی از هدف‌هام از ترجمه‌ی این مقاله بالاتر بردن سطح اطلاعات خودم از گیت هست. امیدوارم که برای کسانی که دوست دارن با گیت آشنا بشن مطلب مفیدی باشه 🙂

گیت چیست؟

ویکی‌پدیا میگه:

گیت (به انگلیسی: Git) یک نرم‌افزار آزاد و متن‌باز برای بازنگری کد منبع توزیع شده و مدیریت منبع کد است که برروی سرعت تاکید می‌کند. گیت ابتدا برای توسعهٔ لینوکس توسط لینوس تروالدز به وجود آمد و اکنون پروژه‌های فراوانی از آن الهام گرفته‌اند. هر دایرکتوری کاری در گیت یک مخزن کامل با تاریخچهٔ کامل تغییرات و قابلیت بازنگری تغییرات است و برای کار با آن نیازی به دسترسی به شبکه یا سرور مرکزی وجود ندارد. گیت یک نرم‌افزار آزاد است که تحت عنوان جی‌پی‌ال نسخه ۲ توزیع شده است.

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

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

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

مشکلی که گیت داره اینه که استفاده از اون خیلی سنتی هست و باید از دستورات خط فرمان استفاده کنیم. نوشتن دستورات کوتاهی برای انجام کارها مثل هکرهای دهه‌ی ۹۰! که این برای کاربران مدرن امروزی مقداری سخت است. و اینجاست که گیت‌هاب وارد می‌شود!

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

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

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

کلماتی که مردم زمان حرف زدن از گیت، استفاده می‌کنند

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

خط فرمان (Command Line): برنامه کامپیوتری که برای وارد کردن دستورات گیت استفاده می‌کنیم. توی مک  Terminal نامیده میشه، روی پی سی برنامه‌ای غیر بومی هست که هنگامی که برای اولین بار گیت رو دانلود می‌کنید، اون رو هم دانلود خواهید کرد. و روی سیستم‌های لینوکسی از ترمینال استفاده خواهیم کرد. که در هر حالتی ما دستورات متنی را به جای استفاده از موس روی صفحه تایپ خواهیم کرد.

مخزن (Repository): پوشه یا فضای ذخیره‌سازی که پروژه شما داخل اون وجود دارد. بعضی وقت‌ها کاربران گیت‌هاب از اون با عنوان “repo.” نام می‌برند. اون می‌تونه یه پوشه‌ روی کامپیوتر شما باشه یا فضایی روی گیت‌هاب یا هر سرویس میزبانی آنلاین دیگری. شما می‌تونید فایل‌های برنامه نویسی، متنی، عکس و هرچیزی رو داخل مخزن ذخیره کنید.

کنترل نسخه (Version Control): هدف اساسی که گیت برای اون طراحی شد. وقتی یه فایل وُرد مایکروسافتی دارید،  مجبورید که هر بار که مجزا ذخیره‌اش کنید یا چندین نسخه از اون رو دخیره کنید. با گیت، مجبور به این کار نیستید. اون اسنپ‌شات هایی از هر لحظه از تاریخچه‌ی پروژه رو ذخیره می‌کنه، بنابراین هیچ وقت هیچ چیزی رو از دست نمی‌دین با بازنویسی نمی‌کنید.

سپردن (Commit): این دستوری هست که به گیت قدرت می‌دهد. وقتی که Commit می‌کنید، اسنپ‌شاتی از وضعیت فعلی پروژه‌تون رو در نقطه‌ی زمان فعلی ایجاد می‌کنید، که به شما نقطه‌ی بررسی برای تجدید نظر یا بازگرداند پروژه به این نقطه رو خواهد داد.

شاخه‌ (Branch): چطور چند نفر به صورت هم‌زمان روی یک پروژه کار می‌کنند بدون اینکه گیت اون‌ها رو قاتی کنه؟ معمولا اون‌ها شاخه‌ای از پروژه اصلی هستند با همه تغییراتی که خودشون اعمال کرده‌اند. وقتی که کارشون تموم شد، زمان اون خواهد بود که با “master”، پوشه‌ی اصلی پروژه،  ترکیب شوند.

دستورات مخصوص گیت

از اون‌جاییکه گیت با دورنمای پروژه‌ی بزرگی مثل لینوکس طراحی شده، دستورات گیتی زیادی وجود دارد. با این حال، برای استفاده‌ی مقدماتی از گیت، با اصطلاحات کمی آشنا شوید.  همه این دستورات به یک شکل شروع می‌شوند، با کلمه‌ی “git.”

git init  

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

git config

: مخففی برای “configure,”، این بیشتر زمانی کاربرد دارد که برای اولین بار مشغول راه‌اندازی و تنظیم گیت هستید.

git help

: دستوری رو یادتون رفته؟ این دستور رو در خط فرمان تایپ کنید و ۲۱ دستور متداول گیت را فراخوانی کنید. همچنین می‌توانید خاص تر عمل کنید و “git help init” رو تایپ کنید. یا اصطلاح دیگری را تا بفهمید چطوری اون دستور خاص استفاده و تنظیم می‌شود.

git status

: وضعیت مخزن خود را بررسی کنید. ببینید چه فایل‌هایی داخل اون هستند. چه تغییراتی نیازمند Commit شدن هستند. و همچنین هم‌اکنون توی چه شاخه‌ای مشغول کار هستید.

git add

: این دستور فایلی را به مخزن شما اضافه نخواهد کرد. در عوض، گیت را از وجود فایل‌های جدید خبردار می‌کند. بعد از اینکه فایل‌ها را add کردید، آن‌ها به “اسنپ‌شات‌های” مخزن‌تون اضافه خواهند شد.

git commit

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

git commit -m “Message here.

-m تعیین می‌کند که قسمت بعدی دستور به عنوان پیام در نظر گرفته شود.
git branch

:با همکاران‌تون روی یک پروژه کار می‌کنید و مایلید تغییرات مختص به خودتون رو داشته باشید؟ این دستور به شما اجازه‌ی ساختن یه شاخه‌ی جدید، یا خط زمانی از Commitها، یا تغییرات و اضافات فایل‌ها  را مختص خودتات می‌دهد. عنوان شما بعد از دستور می‌آید. اگر می‌خواهید شاخه جدید به نام cats باشد از این دستور استفاده کنید:

git branch cats

git checkout

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

git checkout master

برای بررسی‌ شاخه‌ی master و یا

git checkout cats

برای بررسی شاخه‌ای دیگر

git merge

:زمانی‌که کارتون با یک شاخه تموم شد، می‌توانید تغییرات‌تون رو به شاخه master منتقل کنید. تا برای همه همکاران‌تون قابل دسترسی باشد.

git merge cats

همه تغییراتی که شما در شاخه‌ی “cats”  داده‌اید را گرفته و به شاخه‌ی master اضافه می‌کند.

git push

: اگر روی کامپیوتر شخصی‌ خودتون کار می‌کنید و می‌خواهید commit هاتون روی گیت‌هاب در دسترس باشه، تغییرات‌تون رو با این دستور به روی گیت‌هاب هُل میدین.

git pull

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

راه‌اندازی گیت‌هاب و گیت برای اولین بار

نخست، لازم است که روی Github.com عضو شوید و یک حساب کاربری برای خود ایجاد کنید. این کار به سادگی عضویت در هر شبکه‌ی اجتماعی دیگریست. ایمیلی که عضو می‌شید را به خاطر داشته باشید، به زودی به سراغش خواهیم اومد.

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

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

git config --global user.name "Your Name Here"

البته که لازم هست به جای “Your Name Here” اسم خودتون رو که قبلا وارد کردید، قرار بدین. این می‌تونی نام اصلی‌تون باشه، یا لقب آنلاین‌تون یا هرچیزی! برای گیت اهمیتی ندارد و فقط نیاز داره که بدونه چه کسی commit ها و بقیه چیزها رو انجام میدهد.

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

git config --global user.email "your_email@youremail.com"

این همه چیزی  بود که برای شروع کار با گیت روی کامپیوتر خودتون نیاز داشتید.

ایجاد اولین مخزن آنلاین

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

به GitHub.com برگردید و روی آیکون + کوچکی که کنار نام کاربری‌تون قرار داره کلیک کنید. یا اینکه مستقیما به ضفحه‌ی مخزن جدید بروید. برای مخزن‌تون نام به یاد ماندنی و  توضیح کوتاهی وارد کنید، جلوتر برید و اونو منتشر کنید

git1

نگران تیکِ “Initialize this repository with a README.” نباشید. فایل Readme معمولا فایل متنی کوچکی هست که اندکی درباره پروژه شما توضیح میدهد. روی دکمه‌ی سبز رنگ  “Create Repository” کلیک کنید و حالا شما یک فضای آنلاین برای زندگی پروژه‌تون در اختیار دارید 🙂

ایجاد اولین مخزن محلی

خب تا اینجا یه فضایی رو برای پروژه‌تون به صورت آنلاین ساختیم. ولی اون جایی نیست که شما روی پروژه کار خواهید کرد. اکثر کارتون روی کامپیوتر خودتون انجام خواهد شد. پس لازم هست که مخزنی که ساختیم را به صورت یک پوشه‌ی محلی منعکس کنیم.

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

نخست این دستور رو تایپ کنید:

mkdir ~/Test

mkdir خلاصه‌ی make directory به معنی ساخت پوشه است. این در واقع یک دستور گیتی نیست اما یک دستور حرکتی عمومی، مربوط به زمان قبل از کامپیوترهایی با رابط کاربری بصری هست.

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

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

حالا این دستور رو تایپ کنید:

cd ~/Test

cd خلاصه‌ی change directory به معنی تغییر پوشه هست. تا اینجا یک پوشه ساختیم و حالا وارد اون پوشه‌ای که ساختیم شدیم.

و بالاخره یک دستور گیتی رو تایپ می‌کنیم. در خط بعدی این دستور رو تایپ کنید:

git init

می‌دونید که از یک دستور گیتی داریم استفاده می‌کنیم چون این دستورات با git شروع می‌شوند.

init مخفف “initialize.” هست. وقتی این دستور رو وارد می‌کنیم به کامپیوتر اعلام می‌کنیم که این فولدر (Test) یک مخزن گیت است. اگر پوشه را باز کنید، تغییری مشاهده نمی‌کنید. زیرا این پوشه‌ی گیت جدید به صورت مخفی داخل پوشه‌ی اصلی قرار دارد.

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

امیدوارم که چیزایی که انتظار داشتید رو از قسمت اول این مقاله یاد گرفته باشید. به زودی قسمت دوم رو هم خواهم گذاشت. اگر سوالی دارید خوشحال می‌شم توی دیدگاه‌ها بپرسید و اگر در توانم بود پاسخ خواهم داد. همچنین خوشحال تر میشم اگر تخصص بیشتری نسبت به من دارید مقاله رو اصلاح کنید 🙂

موفق باشید.

 

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



برچسب ها : , , , , ,

به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد