خب امیدوارم که گیت رو تو سیستم داشته باشید، خلاصه قسمت اول اینه که گیت یه برنامهای هسش که هنگام اجرا به فایلهای شما یه نگاه میندازه بهتون میگه چه تغییراتی به وجود اومده..
بیایید باهم شروع کنیم گیت رو و در ادامه با چندها اصطلاح مهم دنیای گیت آشنا هم بشیم. با قسمت دوم آموزش گیت همراه ماباشید!
بزن بریم
فک کنید شما یک پوشهای بنام My_belec دارید که میخواهید این پوشه رو به گیت بشناسونید که براتون بررسی بکنه، وارد پوشه شده وراست کلیک کنید:
همانطور که میبینید دو گزینه با نامهای git gui here و git bash here وجود داره که یکی حالت گرافیکی و دیگری حالت ترمینالی یا کامندی هسش که قطعاً ما حالت کامندی رو باهم اجرا میکنیم که یه کادری برامون مشابه عکس زیر بالا میاد:
سپس باید initialize بکنیم که با این کار ما اجازه میدیم گیت دایرکتوری رو تحت کنترل به گیره پس دستور زیر رو وارد کنید:
git init
که برامون پیغامی چاپ میکنه با این مضمون که داخل پوشهها برات یه فایل .git ساختم. (مستندات سایت گیت)
حواستون باشه که دایرکتوری که با دات (.) شروع بشه مخفی هست باید از حالت hidden خارج کنید (البته نیاز به این کار نیست کاری هم با اون پوشه تا آخر آموزش نخواهیم داشت)
خب حالا بیایید داخل پوشه هامون دوتا فایل دیگه با نامهای src و inc بسازیم و یه داکیومنت.c و.h هم قرار بدیم (این کار صرفاً برای تست بوده لزومی نداره شما حتی میتونید فایلهای word و غیره اضافه کنید و با من پیش بیایید)
ما به دلیل اینکه یه تغییرات جدیدی تو دایرکتوری دادیم باید به گیت بگیم برامون بررسی کنه، یه دستور بسیار پرکاربرد که همیشه ازش استفاده میکنیم:
git status
حتماً فهمیدید که تو گیت همه دستورات با پیشوند git شروع میشن.
بیایید این دستور رو وارد کنیم:
تو خط اول میگه ما تو شاخه master هستیم. (آفرین بهت!)
خط بعدی میگه هنوز کامیتی نیست یا وجود نداره (خب هول نکنید، کامیت چیز خوشمزهای به زودی بهش میرسیم)
تو خط بعد که یکی از اصطلاحات گیته و باید بلد باشید میگه فایلهای untracked نشده این پایینیها هستند.
گیت سه تا وضعیت داره که اولی untracked هست، به معنای اینکه اینارو تازه اضافه کردی و نمیدونم چیه..
بعد خودش اون وسطا راهنمایی میکنه، میگه دستور git add رو بزن تا اینا رو به منطقه یا وضعیت stage تغییر بدم که این دومین وضعیته به معنای اینکه حواسم هست بهش اما جایی ثبت نشده ولی بهت میگم که چه تغییراتی ایجاد کردی..
وضعیت سوم هم که کامیت کردنه باعث میشه تغییرات شما نهایی بشه و ثبت بشه. و اگر روزگاری خواستید به فایل هاتون برگردید دراصل به همین کامیت کرده هاتون برمیگردید. یه چند قدم که بیایید جلوتر براتون جا میفته.
من الآن دوس دارم فقط پوشه inc رو ببرم به وضعیت stage، خب دستور:
git add inc
بعد یه وضعیتم چک میکنم با دستور git status:
خب مشخصه که فایل سبز رنگ در وضعیت stage قرار داره چون خودمون بهش گفتیم اما فایل src رو همچنان untrack میشناسه. نظرتون چیه داخل فایل main.h یه چند خط کد بنویسیم ببینیم گیت بهمون چی میگه؟
خب مجدد دستور git status رو بزنید:
بیایید دوباره تفسیر کنیم. میگه یه فایل داری که تو حالت stage هسش، بعد دو خط بعدی میگه حواست باشه یه چیزی تغییر دادی، میگم عه! گیت، میشه بهم بگی کجا تغییر پیدا کرده؟ میگه چشم! فقط لطف کن دستور git diff رو بزن تا بگم:
git diff
من که لذّت بردم، شما رو نمیدونم… دقیقاً میگه اینا رو اضافه کردی، که کاملاً درسته! حتی اگه شما تغییرات خیلی زیادی بدید که گیت نخواد همه تغییرات رو نشون بده، براتون شماره خطها رو نشون میده! میگه مثلاً تو خط فلان شما فاصله رو اضافه/حذف کردی… فقط یادتون نره که ما این تغییرات رو هم با دستور git add به stage اضافه میکنیم، چون مورد تاییدمونه. حالا میخوایم همینو کامیت کنیم. یعنی بگیم آره خانوم/آقای گیت دستت درد نکنه، همین تغییرات رو برام ثبت کن! (یادتون نرفته که شما هر زمان که بخواید میتونید در آینده به کامیت هاتون برگردید.)
دستور git commit رو وارد کنید!
git commit -m "Your Message"
خب بیایید یه لاگ بگیرم پس دستور زیر رو وارد کنید:
git log
خب تصویر گویاست الآن ما یک مورد کامیت شده داریم که برامون یه هش (hash) هم تولید کرده
صرفاً جهت اطلاع بگم الگوریم هش گیت، sha1 هسش.
حالا یه git status بگیرید:
همچنان با فایل src ما کاری نداره … جهت تمرین شما خودتون هم این src رو اضافه کنید.
آموزش گیت جادی – قسمت دوم
منبع:سیسوگ