سلام مجدد
دومین و آخرین قسمت از گیتهاب برای تازهکارها رو مینویسم. خوشبختانه از قسمت اول بازخوردهای خوبی گرفتم. امیدوارم قسمت دوم هم مورد استقبال همه قرار بگیره
قبل از اینکه مطلب رو شروع کنم لازم میبینم این نکته رو ذکر کنم که از اون جایی که ترجمهی اصطلاحات مفهوم رو به خوبی منتقل نمیکنه ترجیح دادم توی این نوشته، از اصطلاحات انگلیسی استفاده کنم.
حتما توصیه میکنم قبل از خواندن این مطلب، ابتدا قسمت اول آموزش گیتهاب رو مطالعه کنید.
در قسمت اول، استفادهی اصلی گیتهاب، روند ساخت حساب کاربری روی اون و همچنین نحوهی ایجاد repository محلی برای کدهامون رو یاد گرفتیم.
حالا که این مراحل رو طی کردیم وقتشه که اولین بخش از پروژهمون رو با ارسال اولین Commit به گیتهاب ایجاد کنیم. در قسمت قبل یک مخزن محلی به نام Test ایجاد کرده بودیم، که مراحل ایجاد این مخزن، از طریق خط فرمان رو میتونید توی عکس زیر ببینید:
حالا توی command line دستور زیر را وارد کنید:
touch Readme.txt
این دستور هم دوباره یک دستور گیتی نیست و در واقع یک دستور حرکتی استاندارد است. touch
در واقع به معنی ساختن است. هرچیزی که بعد از آن تایپ کنید، نام چیزی خواهد بود که ساخته میشود. اگر به پوشهی پروژهتون برید خواهید دید که یک فایل به نام Readme.txt داخل آن ایجاد شده است.
ما الان مشخصا میتونیم فایل Readme.txt رو ببینیم. اما گیت چی؟ بیاید بفهمیم! تایپ کنید:
git status
خروجی این دستور چند خط متن شبیه این خواهد بود:
On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) Readme.txt
خب اینا چی هستند؟ اول اینکه، شما توی شاخهی master پروژهتون هستید. که منطقی هم هست چون ما شاخهای برای پروژه تعریف نکرده بودیم. و تا وقتی هم که به صورت تکی کار میکنیم دلیلی برای این کار وجود ندارد. دوم اینکه فایل Readme.txt به عنوان فایل شناسایی نشده (untracked file) در نظر گرفته شده است. که این معنی رو میده که فعلا گیت اون رو در نظر نخواهد گرفت. برای اینکه گیت را متوجه این فایل بکنیم، دستورات زیر را وارد میکنیم:
git add Readme.txt
خب اولین فایلمون رو ایجاد کردیم. حالا وقتشه که اولین اسنپشات از پروژه مون رو بگیریم. یا در واقع commit کنیم:
git commit -m “Add Readme.txt”
همون طوری که توی قسمت اول هم گفتم، بخش -m
تعیین میکند که متن بعدی به عنوان پیام خوانده شود. دقت کنید که پیام commit را در زمان حال بنویسید. در واقع همیشه باید از افعال زمان حال استفاده کنید. زیرا کنترل نسخه فقط برای انعطاف پذیری در زمان استفاده میشود. ما نمینویسیم که یک commit چه کاری انجام داده است چون که هر لحظه ممکنه به قبل برگردی، همیشه مینویسیم که commit ما چه کاری انجام میدهد.
حالا که کمی به صورت محلی (روی کامپیوتر خودمون) کار انجام دادیم، وقتشه که اولین commit مون رو به گیتهاب push کنیم.
صبر کنید! ما هنوز مخزن محلیمون رو به مخزن آنلاینمون وصل نکردیم! احتمالا به این فکر کردین. و خب حق با شماست. در حقیقت،وقتی اضافات و تغییرات پروژهتون رو تایید میکنید، مخزن محلی و آنلاین شما فقط آماده اتصال شده اند. پس آماده بشید تا اولین اتصال واقعی رو برقرار کنیم.
اتصال مخزن محلی به مخزن گیتهاب
داشتن یک مخزن محلی به اندازه آنلاین جذاب هست. میتونید همه کارهاتون رو حتی بدون اتصال به اینترنت انجام بدین، و سپس نتیجه نهایی رو روی گیتهاب قرار میدین تا همه ببینند.
همچنین باعث میشه که چندین نفر بتونند روی یک پروژه به صورت همزمان کار کنند. هر کدوم میتونند روی کامپیوترهای خودشون به صورت تکی کار کنند و وقتی که کارشون تموم شد، اون رو روی گیتهاب آپلود یا push کنند.
اول باید به گیت بگیم که یک مخزن آنلاین برای این پروژه وجود دارد. ما این کارو با شناسایی مخزن آنلاین به گیت انجام میدهیم. همون طور که گیت فایلهای جدید ما رو نمیشناخت و باید با دستور git add
اون فایلها رو برای گیت شناسایی میکردیم، مخزن آنلاین رو هم به صورت خودکار نخواهد شناخت.
فرض کنیم یک مخزن گیتهاب به نام Test داریم که توی مسیر https://github.com/iMojtaba/Test.git قرار گرفته است. مشخصه که به جای iMojtaba باید نام کاربری خودتون رو و به جای Test هم اسم مخزن خودتون روی گیتهاب رو قرار بدهید.
git remote add origin https://github.com/username/myproject.git
قسمت اول حتما براتون آشنا هست. قبلا از دستور git add
برای شناسایی فایلها استفاده کردیم. کلمهی origin
رو بهش اضافه کردیم تا نشون بدیم که فایلها از کجا نشات گرفتهاند. واژهی remote
توصیف کنندهی origin
است، تا نشون بدیم که منشا فایلها کامپیوتر ما نیست بلکه جایی آنلاین است.
حالا گیت میدونه که یک مخزن آنلاینی وجود داره که ما میوایم تغییرات محلیمون به اونجا منتقل بشود. برای اطمینان این دستور را وارد کنید:
git remote -v
این دستور همهی لیستی از همهی origin هایی که مخزن محلیمون میشناسه را به ما میدهد. اگر تا اینجا با من پیش اومده باشید فقط باید یک Test.git وجود داشته باشد. که دوبار لیست شده است. که یعنی هم میتونیم اطلاعات رو بهش push کنیم و هم میتونیم اطلاعات رو از اون fetch کنیم.
حالا میخواهیم که تغییراتمون رو روی گیتهاب آپلود یا push کنیم. این کار خیلی ساده است. دستور زیر زیر تایپ کنید:
git push
بعد از وارد کردن این دستو، احتمالا توی ترمینال خطوطی از متن رو میبینید که در نهایت به عبارت everything up-to-date. ختم شده اند.
اگر با خطاهایی مشابه تصویر بالا مواجه شدین، بخاطر این است که دستور رو به سادهترین شکل ممکن وارد کردهایم. برای دقیقتر کردن دستور میتونیم از git push origin master
استفاده کنیم تا مشخص کنیم که منظور ما شاخهی master مخزنمون بوده است.
به گیتهاب لاگین کنید، میبینید که گیتهاب متوجه تمام commitهای شما شده است. که اگر طبق این آموزش پیش اومده باشید فقط یک commit وجود دارد. بر روی اسم مخزنتون کلیک کنید و میبینید که فایل Readme.txt داخل اون موجود است.
جمعبندی نهایی
تبریک میگم، حالا شما رسما یک کاربر گیت هستید! میتونید مخزنهایی رو ایجاد کنید و تغییراتتون رو به اون مخزنها commit کنید. اینجا جایی هست که اکثر آموزشهای ابتدایی متوقف میشوند.
با این حال ممکنه هست که این احساس آزاردهندهای که هنوز حرفهای نیستید رو داشته باشید. برای اینکه با گیت راحتتر باشید، اجازه بدین که کل مطالبی که تا اینجا گفته شد را با هم از طریق یک مثال مرور کنیم. فرض کنیم شما یک طراح وب در شرکت ۱۲۳ دیزاین هستید. و با همکاران خودتون یک سایت برای مغازه بستنی فروشی صمد طرحی کردهاید.
زمانیکه مدیر شما بهتون گفت که باید در پروژهی طراحی مجدد وبسایت صمد مشارکت کنید، کمی نگران شدهاید. تازه شما برنامهنویس هم نیستید و طراح گرافیک هستید. اما مدیرتون تاکید کرده که همه میتونند از گیت استفاده کنند و شما هم باید این کار را انجام دهید.
شما تصویر جدیدی از یک بستنی گردویی طراحی کردهاید، و میخواهید اون رو به پروژه اضافه کنید. تصویر را داخل یک پوشه روی کامپیوترتون ذخیره کردهاید که برای جلوگیری از گیج شدن خودتون، اسم این پوشه را icecream گذاشتهاید.
خط فرمان را باز کنید و مسیر خودتون رو به داخل پوشهیicecream تغییر بدین.
cd ~/icecream
برای اینکه بتونید از گیت داخل پوشهی icecream استفاده کنید، اون رو راه اندازی کنید:
git init
صبر کن! پوشهی مورد نظر همینه نه؟ برای اینکه از صحت جایی که کارتون رو انجام میدین مطمئن بشید از دستور زیر استفاده کنید:
git status
و این چیزی هست که گیت در پاسخ به شما خواهد گفت:
# Untracked files: # (use "git add ..." to include in what will be committed) # # chocolate.jpeg
خب همه چیز درست هست. وقتش هست که عکسها رو به مخزن محلی گیتمون معرفی کنیم تا تغییرات اون هارو زیر نظر بگیره :
git add chocolate.jpeg
حالا با استفاده از commit یک snapshot از مخزنمون ایجاد می کنیم.
git commit -m “Add chocolate.jpeg.”
عالیه! اما همکارانتون که سخت مشغول کار بر روی قسمت مربوط به خودشون هستند، هنوز نمیتونند طراحی زیبای شما رو ببینند. برای همین منظور هست که پروژهی اصلی بر روی اکانت شرکت روی گیتهاب (نام کاربری: ۱۲۳design) و داخل مخزن icercream ذخیره شده است.
تا زمانی که هنوز به مخزن گیتهاب وصل نشدهاید، کامپیوترتون هنوز نمیدونه که همچین چیزی وجود دارد. پس به مخزن محلیتون مخزن آنلاین رو معرفی کنید:
git remote add origin https://github.com/123Design/icecream.git
و سپس دوباره چک کنید که همه چیز درست باشه :
git remote -v
و سرانجام، لحظهای که منتظرش بودید فرا رسید. تصویر بستنی گردویی خوشمزه رو آپلود کنید روی پروژه:
git push
با همه چیزایی که گفتم حتما متوجه شدین که گیت و گیتهاب فقط برای برنامهنویسها نیست.
منابع گیت
گیت خیلی گسترده است. توی این آموزش سعی کردم که طریقهی استفاده از گیت رو بیان کنم. ولی ما نمیتونیم کل گیت رو به این شکل یاد بگیریم. در اینجا منابعی که میتونند برای آموزش پیشرفتهتر گیت مفید باشند رو معرفی میکنم:
- Pro Git: یک کتاب کاملا متن باز برای یادگیری و استفاده از گیت. ظاهرا خیلی طولانی هست ولی برای آموزش و استفادهی مقدماتی بیشتر از فصل سوم آن نیاز نیست.
- Try Git: کداسکول و گیتهاب با هم تیم شدن و یه مجموعه آموزش سریع برای گیت ساختهاند. اگر تمرینهای بیشتری برای اصول اولیه میخواید، این آموزش میتونه بهتون کمک کنه. اما اگر پول اضافهای دارید و میخواهید هرچی درباره گیت وجود داره رو یاد بگیرید، دورهی گیتِ کداسکول این کارو انجام میده.
- GitHub Guides: اگر یادگیری بصری بالای دارید، کانال رسمی یوتیوبِ گیتهاب میتونه برای شما مفید باشد. خصوصا سری ۴ قسمتیِ اصول گیت رو بهتون توصیه میکنم.
- Git Reference: اصول اولیه رو یاد گرفتید ولی دستورات رو یادتون میره؟ این سایت یک منبع عالی برای دستورات گیت هست.
- Git – the simple guide: این آموزش مختصر و شیرین است. اما برای تازهکارها یه خرده سریع پیش میره، و اگر مایلید اطلاعاتتون درباره اصول اولیهی گیت رو به روز کنید، این همهی چیزی هست که نیاز دارید.
این هم از قسمت دوم و پایانی آموزش گیت، امیدوارم دروازهی ورودِ خوبی برای وارد شدنتون به دنیای گیت باشه
نوشته گیتهاب برای تازه کارها: Commit، Push و بزن بریم اولین بار در مجتبی درویشی پدیدار شد.