مطمئنا دورههای آموزشی بسیاری خوبی برای یادگیری گیت تولید شده است، اما من در این مطلب قصد دارم شما را به صورتی بسیار سریع با گیت و تا حدی گیتهاب آشنا سازم. همچنین همراه با این مطلب میتوانید از دوره آموزشی رایگان گیت و گیتهاب در وبسایت راکت استفاده کنید.
تعریف
گیت یه مجموعه دستور و امکاناته که روند تغییرات یک یا چند فایل رو مشاهده میکنه و به ما این قابلیت رو میده تا بتونیم نسخههای مختلفی از برنامهای که توسعه میدیم رو مدیریت کنیم. اینجوری ما میتونیم بین نسخههای مختلف یه برنامه بگردیم و اونا رو restore بکنیم. این پروسه به صورت خیلی مقدماتی و پایهای بهش میگن سیستم کنترل نسخه یا Version Control System. گیت رو خالق لینوکس، لینوس توروالدز توسعه داده است.
گیت یک برنامه است که میتونید اون رو دانلود کنید و روی محیط محلی خودتون ازش استفاده کنید. پس گیت یه سیستم متمرکز نیست، اینجوری نیست که همه چی رو یه سرور باشه و شما فایلهاتون رو به اون سرور بفرستید، گیت رو میشه در حالت محلی پیادهسازی کرد. البته شما قابلیت استفاده از گیت را روی سرور شخصیتان نیز خواهید داشت.
هر پروژهای که توی گیت قرار بگیره بهش میگن یک ریپازیتوری یا یک مخزن. مثلا اگه شما مشغول ساختن یه اپلیکیشن توی دایرکتوری app هستید، این دایرکتوری میشه اون مخزن شما. گیت این مخزن و تغییراتی که درش اتفاق میافته رو دنبال میکنه و همه اتفاقات اونجا رو پیگیری میکنه.
حالا این مخزن به صورت محلی روی کامپیوتر ما فقط وجود داره. اگه بخوایم به چند نفر دیگه بدیمش باید چیکار کنیم؟ خب اینم موضوع مهمیه. یه سری از پلتفرمهایی که گیت رو به صورت آنلاین ارائه میدن این امکان رو میدن تا بتونیم مخزن خودمون رو به اشتراک دیگران قرار بدیم. مثلا گیتهاب یکی از این سرویسهاست که توی همین مطلب بهتون یاد میدم چطوری این کار رو هم انجام بدید.
۱- نصب گیت
اولین کاری که باید بکنیم اینه که گیت رو روی کامپیوترمون نصب بکنیم:
اگه مثل من از اوبونتو استفاده میکنید که کافیه توی ترمینال بزنید sudo apt install git
اگه از مک او اس استفاده میکنید کافیه توی ترمینال بزنید brew install git
اگر هم توی ویندوز هستید که باید این برنامه رو نصب بکنید. نسخههای گرافیکی هم از گیت وجود داره که میتونید استفاده بکنید اما خب کار با محیط متنی خیلی لذت بخش تره.
۲- کانفیگ گیت
وقتی که اولین بار گیت رو نصب میکنید نیاز هستش که گیت رو براساس مشخصات خودتون کانفیگ بکنید. یعنی اینکه بگید کی هستید تا از این به بعد اتفاقاتی که می افته به اسم شما ذخیره بشه. برای اینکار دستورات زیر رو وارد کنید:
git config --global user.name "Arastoo" git config --global user.email test@test.com
شما بجای Arastoo و test@test.com، از نام و ایمیل خودتون استفاده کنید.
از این به بعد هر کاری رو که توی گیت انجام بدید با این نام و ایمیل ذخیره میشه.
۳- ایجاد یک مخزن
همونطوری که قبلا اشاره کردم برای اینکه گیت بتونه اطلاعات مربوط به یه پروژه رو دنبال کنه از مفهوم مخزن استفاده میکنه. پس نیاز هست که یه مخزن درست کنیم. برای این کار ترمینال خودتون رو باز کنید و با دستور cd به دایرکتوری پروژه خودتون مراجعه بکنید. بعد از اون دستور زیر رو وارد کنید:
git init
بعد از اینکار پیغامی شبیه به زیر براتون ظاهر میشه:
Initialized empty Git repository in /home/me/test/.git/
حالا اگه یه دستوری مثل ls -a رو وارد کنید میبینید که یه دایرکتوری مخفی به اسم .git وجود داره که گیت اون رو براتون ساخته. از این به بعد تمام اطلاعات مربوط به پروژهتون مثل کامیتها و… توی این دایرکتوری نگه داری میشه. در مورد این قضیه هم صحبت میکنیم.
توی اون دایرکتوری یه فایل simple.txt
درست کنید.
۴- بررسی وضعیت گیت
گیت یه دستور git status
داره که وضعیت گیت رو بررسی میکنه. مثلا میگه چه چیزهایی تغییر کردند، چه چیزهای جدیدی اضافه شده، آیا همه چیز بروزرسانی شده یا نه و چیزهایی از این دست. حالا بیایید یه بار این دستور رو وارد کنیم بببینم چی به ما برمیگردونه:
git status
خروجی:
On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) simple.txt nothing added to commit but untracked files present (use "git add" to track)
این خروجی داره به من میگه که روی برنچ مستر هستم (در موردش حرف میزنیم)
هنوز کامیتی ایجاد نشده (در مورد اینم حرف میزنیم)
مهم این خطه که نوشته untracked files: در واقع این خط داره میگه که یه سری فایل توی دایرکتوری test شما وجود داره که گیت دنبالشون نمیکنه، به تعبیری این فایل simple.txt جدیده و گیت هنوز نمیدونه که باهاش چیکار بکنه.
حالا سوالی که پیش میاد اینه که چطوری به گیت بگم که هواسش به این فایله باشه؟
۵- استیج کردن – به روی صحنه بردن
گیت یه مقوله به اسم «ناحیه استیج» داره. در واقع مثل یه اتاق خالی نگاهش بکنید که توش یه دوربین مداربسته وجود داره «اسم دوربینمون گیت هستش» حالا شما برای اینکه تمام رفتارهای یک آدم رو بفهمید و ببینید داره چیکار میکنه باید وارد اون اتاقش بکنید. این آدم توی مثالمون فایل simple.txt هستش. با وارد کردنش به این چهارچوب، گیت دنبالش میکنه و بیخیالش نمیشه و تمام جیک و پیکش رو براتون در میاره.
برای وارد کردن فایل simple.txt به این محیط کافیه دستور git add رو همراه با اسم فایل وارد کنید، مثل:
git add simple.txt
حالا فایل به مرحله استیج رفت. اگه چند تا فایل داشته باشید میتونید بجای وارد کردن اسم همشون دستور git add -A
رو وارد کنید. به همین سادگی.
حالا یه بار دیگه دستور git status
رو وارد کنید:
On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: simple.txt
این بار بجای untracked files داره میگه که یه فایل جدید به اسم simple.txt داره ردگیری میشه و آمادهس که کامیتش بکنیم.
۶- کامیت کردن
مثال دوربین مداربسته رو به یاد بیارید. شما یه آدم رو توی اون چهار دیواری که گفتیم اسمش استیج هستش قرار میدید. حالا میگید که مثلا ساعت ۶ یه ویدیو کلی از تمام فعالیتهاش تا الان رو بفرست به یه جای امن. کامیت کردن یه پروژه هم تقریبا همین حالت رو داره. شما پروژهتون رو تا نیمه راه آوردید حالا میخواید تا اینجای کار یه نسخه امن و درست از اون رو داشته باشید تا اگه بعدا دچار مشکلی شدیم بتونیم برگردیم سراغ اون نسخه درست.
برای کامیت کردن نیاز هست که یه فایل یا چندین فایل رو توی استیج قرار داده باشید. همونطور که میدونید ما یه فایل simple.txt رو توی قسمت استیج قرار دادیم بنابراین حالا میتونیم اون رو کامیت بکنید. برای اینکار دستور git commit رو به صورت زیر استفاده میکنیم:
git commit -m "Initial Commit"
آرگومان -m به این معناست که همراه با کامیت یه پیغام رو هم بزار که ببینم کامیت من راجع به چیه. مثلا توی کد بالا پیغام رو گذاشتم: کامیت اولیه یا Initial Commit.
۷. گیتهاب
همونطور که گفتم، گیت یه سرویس متمرکز نیست. یعنی اینکه هر کسی میتونه یه گیت رو دانلود کنه و روی محیط لوکال خودش و یا سرورش پیادهسازی کنه. یه عیب اینکه شما به صورت لوکال از گیت استفاده کنید اینه که نمیتونید اون رو با بقیه به اشتراک بذارید. برای اینکه بتونید گیت رو با توسعه دهندگان دیگهای به اشتراک بذارید خیلی ساده کافیه که از یه سیستم کنترل نسخه آنلاین مثل گیتهاب یا گیتلب و… استفاده کنید. ما برای اینکار به یه دسترسی ریموت یا از راه دور نیاز داریم. پس باید یه مخزنی روی گیتهاب داشته باشیم و مخزن خودمون رو در حالت لوکال روی اون مخزن قرار بدیم.
۷-۱: ثبت نام و ساخت مخزن در گیتهاب
اولین کاری که باید بکنید اینه که توی گیتهاب ثبت نام بکنید و بعدش یه مخزن درست کنید. برای اینکار کافیه وارد این آدرس بشید و فیلدهای مربوط به مخزن رو پر کنید و در نهایت Create repository رو بزنید. بعد از اینکار وارد آدرس مخزنتون بشید.
۷-۲: ارتباط با گیتهاب
حالا نیازه که آدرس .git مخزنتون رو بردارید و توی ترمینال براساس کد زیر به مخزن متصل بشید:
git remote add origin https://github.com/arastoonet/roockettest.git
origin یک نام برای این ارتباط ریموت من با گیت هستش. میتونه هر چیز دیگهای باشه اما اینو معمولا میزارند.
حالا که من یه ارتباط درست کردم و الان وقت این شده که گیت لوکالم رو بفرستم روی گیتهاب. برای اینکار از دستور push به صورت زیر استفاده میکنم.
git push origin master
گفتم که برنچ مستر رو به صورت لوکال بفرست روی ارتباط ریموتی که با نام origin ساختم. با اجرای این دستور از شما مشخصات احرازهویت گیتهاب رو میپرسه که باید اونا رو به درستی وارد کنید.
اگه با مشکلی برخوردید میتونید از آرگومان -f یعنی force برای push کردن استفاده کنید که به صورت زیر این کار انجام شدنیه:
git push -f origin master
۷-۳: کلون کردن پروژه
برای دریافت محتویات داخل یک ریپازیتوری توی گیتهاب کافیه از دستور clone استفاده کنید:
git clone https://github.com/arastoonet/sc.git
حالا اگه من توی این مخزن گیت یه بروزرسانی ایجاد کردم. مثلا یه فایل جدیدی رو اضافه کردم، دیگه نمیخواد از اول بیایید کل پروژه رو کلون بکنید. میتونید با استفاده از دستور pull فایلهای جدید آپدیت شده رو بیارید تو مخزن محلیتون:
git pull origin master
در پایان
برای پیشرفت کردن در این موضوع میتونید از لینکهای زیر استفاده بکنید. و همچنین سراغ دوره آموزش رایگان گیت و گیت هاب در وبسایت راکت بروید.
https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید