Skip to content

amiremohamadi/git-commands

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

آموزش گیت (Git) برای مدیریت نسخه توزیع شده

مقدمات گیت و نصب آن

الان هر شرکتی ازتون انتظار داره گیت رو بلد باشین یا حتی اگه فریلنس تنهایی تو خونه برای خودتون کار میکنید به عنوان یه برنامه نویس ازتون انتظار میره با گیت آشنا باشید، زمان هایی که میخواید پروژه تون رو به کسی نشون بدین بهتره رو گیتهاب باشه و... خلاصه یجوری شده که اگه گیت بلد نباشید جزء برنامه نویس ها به حساب نمیاید یجورایی :) اشاره کنم که استار ها و ریپازیتوری های شما تو گیتهاب روزمه شما حساب میشه.

گیت توسط لینوس تروالدز نوشته شده (خالق کرنل لینوکس)، گیت الزامن به کارای نرم افزاری ربط نداره! مثلا گیت برای کتاب یا مقاله نوشتن هم به درد میخوره... -جادی

گیت یک سیستم VCS مخفف Version Control System حساب میشه.

برای نصب از Git-scm.com میتونید گیت رو دانلود و نصب کنید.

اولین اینیت (init) و اولین کامیت

-git init

تو فولدر روت که میخوایم گیت روش نظارت داشته باشه این دستور رو اجرا میکنیم و اینکار باعث ایجاد یه Repository (ریپازیتوری به معنی مخزن) خالی گیت میشه که به صورت پیش فرض اسمش .git هست (تو سیستم های Unix نقطه اول اسم فولدر به معنی مخفی کردن هست) که از این به بعد تمام فعالیت هایی که انجام میدیم (مثل کامیت ها، برنچ ها و...) به صورت لوکال داخل اون فولدر ذخیره میشه.

-git status

با اجرای این کامند میفهمیم که چه فایل هایی را تغییر داده ایم، آیا فایل جدیدی ساخته ایم و یا کدام فایل ها را حذف کرده ایم.

*یه سری مفهوم به اسم stage و commit هست که یعنی فایل ما وقتی تغییر کنه ما باید اون رو اول به stage (به معنی صحنه یا لبه) منتقل میکنیم و با کامیت کردن تغیراتمون رو تو مخزن ثبتش کنیم.

-git add

از این دستور میتونیم در دو حالت استفاده کنیم، وقتی فایل جدیدی اضافه یا ایجاد کردیم (یا تغییری داریم) که گیت اونو دنبال نمیکنه و میخوایم به مخزنمون اضافه اش کنیم، این کار باعث میشه فایل(ها) برن تو حالت stage.

*در ادامه دستور add باید اسم فایل بیاد یا بنویسید -A که همه فایل(ها) با هم منتقل بشن و مطمعن باشید که A با حرف بزرگ باشه.

*پیشنهاد میشه مرحله به مرحله فایل ها رو وارد stage کنید و بعد کامیت کنید که کارتون تمیز تر بشه.

-git commit -m "message"

به طور خلاصه، توضیح میدیم که این فایل اضافه شده یا تغییر داده شده چیه، کسی که لاگ ها رو بعد ما چک میکنه میتونه توضیح رو بخونه و ببینه که چیکار کردیم تو این کامیت.

بررسی تاریخچه کارها

-git log

لیست تاریخچه کامیت ها رو نشون میده.

*هر کامیت یه کد منحصر به فرد داره.

بررسی تغییرات انجام شده

-git diff HEAD

فایل در حال حاضر رو با کامیت قبلی خودش مقایسه میکنه.

*--staged باعث میشه وضعیت فایل های داخل stage رو با کامیت قبلی اون فایل مقایسه کنه

-git reset

باعث میشه فایل از حالت stage خارج بشه.

-git checkout – "file name"

خشن تر از reset عمل میکنه، فایل رو به آخرین کامیتی که شده برمیگردونه.

آشنایی با شاخه ها یا همان برنچ ها(Branch)

-git branch

نمایش لیست برنچ های مخزن.

-git branch

ایجاد یک برنچ جدید.

-git checkout

جا به جا شدن در بین فضاهای کاری مختلف.

*شاخه اصلی ما اسمش master هست

-git merge

ادغام کردن تغییرات. مراقب باشید اول باید به برنچی که می‌خواهید کدها رو باهاش ادغام کنید برید.

-git rm

با این دستور هم فایل رو از گیت حذف کنید هم از فایل سیستم!

-git branch -d name

با این دستور شاخه name حذف میشه.

آشنایی و استفاده از گیتهاب (GitHub)

-git clone

با این دستور یه مخزن آماده روی اینترنت رو به صورت لوکال تو فایل سیستم خودمون کپی میکنیم.

-git push origin master

از master تغییرات رو روی origin اعمال میکنه. -u اسم برنچ ها رو برای سری بعد ذخیره میکنه.

-git pull origin master

از origin تغییرات رو به master اضافه میکنه. -u اسم برنچ ها رو برای سری بعد ذخیره میکنه.

بررسی و حل کانفلیکت های (Conflict) ریموت

-git remote

ریموت های مارو نشون میده

*git remote add origin https://server یه سرور ریموت رو به اسم origin به پروژه ما اضافه میکنه.

*git remote -v به صورت کامل تری ریموت ها رو نشون میده.

*به یه پروژه میتونیم چندتا ریموت اضافه کنیم.

تگ زدن برای شناسایی نسخه ها

-git show

اطلاعات یه کامیت خاص رو با این دستور ببینید.

-git tag

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

*git tag -a v1.0 -m 'first version' برای اضافه کردن تگ با اسم v1.0 و توضیحات ورژن.

*git tag -a v0.5 <commit> -m '0.5 version' میتونیم اینطوری روی کامیت های گذشته تگ بزنیم.

*به طور معمول تگ ها push نمیشن برای اینکه تگ رو push کنید بنویسید git push origin –tags.

دیباگ کردن به کمک گیت

-git blame file.py -L10

تمام کامیت ها در فایل file.py خط 10 رو برامون لیست میکنه.

*-L10,11 کامیت ها بین خطوط 10 تا 11 رو نشون میده.

-git bisect start

شروع عملیات binary search commits.

*git bisect bad الان وضعیت بده.

*git bisect good اینجا وضعیت خوب بوده.

آموزش گیت هاب و مشارکت در پروژه ها

مفهوم Fork: با فورک کردن یک ریپوزیتوری میتونید آزادانه تغییرات خودتون رو روی ریپو اعمال کنین، بدون اینکه تغییری در ریپو اصلی بوجود بیاد. در واقع یک نسخه از ریپوزیتوریه اصلی رو برای خودتون برمیدارین.

مفهوم Pull Request: بعد از اینکه فورک کردین و تغییرات مد نظرتون رو انجام دادین میتونین با PR به صاحب پروژه اطلاع بدین که من تغییرات رو روی پروژه انجام دادم و اگر مایل بودی روی پروژه اصلی توی گیتهاب merge کن که بقیه هم بتونن ازش استفاده کنن.

TODO: امضا کردن تگ ها و کامیت ها (حذف – نیاز به نصب gpg)

-git config –global user.name

-git config –global user.signingkey

حالا بعد از این کجا برم؟

خوب تا الان کمتر از 4 درصد سیستم گیت رو یاد گرفتیم :) که کاملا برای شروع به کار تو یه شرکت کافیه! درواقع این سیستم خیلی خیلی بزرگه و ما به طور معمول همیشه دنبال دستورات میگردیم و از همدیگه در موردش میپرسیم. من یه سری مقاله و سایت رو داخل یه کانال تلگرام (لینک) (@Gitland) جمع کردم و سعی میکنم زود به زود بروزرسانیش کنم که بعد از اینجا میتونید بهش مراجعه کنید و اطلاعاتتون رو بیشتر کنید.

منابع

مرکز آموزش گیتهاب (لینک)

آموزش گیت از جادی میرمیرانی (لینک)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages