آشنایی با git

36
ا ی ب ی ا ن ش آGIT اک ب ش ن دآ رآک ت ش ه آ روژ پ

Upload: chana

Post on 15-Feb-2016

105 views

Category:

Documents


0 download

DESCRIPTION

آشنایی با GIT . پروژه اشتراک دانش تاک . معرفی . پروژه تاک اهداف دعوت به همکاری ارائه کننده سید احسان محمودی. سرفصل های وبینار . نگاهی اجمالی به مفاهیم اولیه نگاهی به تاریخچه معرفی git هدف وبینار ترغیب استفاده از مدیریت نسخه برای همگان جلسه اول مقدماتی - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: آشنایی با  GIT

GITآشنایی با

پروژه اشتراک دانش تاک

Page 2: آشنایی با  GIT

پروژه تاک

اهدافدعوت به همکاری

ارائه کنندهسید احسان محمودی

معرفی

Page 3: آشنایی با  GIT

سرفصل های وبینار

نگاهی اجمالی به مفاهیماولیه

نگاهی به تاریخچه معرفیgit هدف وبینار ترغیب

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

جلسه اول مقدماتی جلسه دوم مفاهیم

پیشرفته تر منبع اصلی کتابPro Git

Page 4: آشنایی با  GIT

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

نیاز به پیکر بندی سرور بوده

چرا مدیریت نسخه

Page 5: آشنایی با  GIT

مدیریت نسخه معموال در پروژه های گروهی به کار می

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

اما در پروژه های تک نفره هم به همان اندازه کاربرد دارد برای بهتر فهمیدنgit بهتر است که به عنوان یک ابزار

کامال محلی و شخصی به آن نگاه شود.

پروژه های گروهی یا تک نفره

Page 6: آشنایی با  GIT

Checkout/Update

آخرین نسخه نسخه ها / بازبینی های قدیمی / مقایسه

CommitBranchingMerging

عملکرد های اولیه مدیریت نسخه

Page 7: آشنایی با  GIT

خیلی از اوقات الزم است که تغییرات از هم مجزا باشند

کار روی دوقسمت کامال متفاوت تغییرات عمده در کدآزمایش روش های مختلف

( Branching )انشعاب

Page 8: آشنایی با  GIT

سیر تکاملی مدیریت نسخه

1 - روش کامال ابتداییRcs( کامال محلیLocal)

Page 9: آشنایی با  GIT

Client-Serverمدل

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

CVSVSSSubversion

Page 10: آشنایی با  GIT

کامال متکی به سرور

اگر سرور دچار مشکل شود همه اطالعات از بین میرود) تاریخچه(

نیاز به راه اندازی سرور دسترسی روی اینترنت درسر ساز

کار کردنOffline سخت است

-Clientمشکالت مدل Server

Page 11: آشنایی با  GIT

مدل گسترده

Page 12: آشنایی با  GIT

Git برای یک نفر

بخش دوم

Page 13: آشنایی با  GIT

Git ( به عنوان یک ابزار مدیریت نسخه محلی Local)

اکثر دستوراتGit به شکل محلی اجرا می شوند این تصور به فهم بهترGit کمک می کند

مدل تک نفره

Page 14: آشنایی با  GIT

نحوه نگهداری - تغییرات

در ابزارها کالسیک به ازای هر تغییر تنها تفاوت ها نگه داری می شود

Page 15: آشنایی با  GIT

نگه داری تغییرات -

Snapshots درGit .در هر نسخه تمام فایل نگه داری می شود هر فایلی که تغییر نکرده باشد، یک نشانگر به نسخه قبلی

را نگه می دارد

Page 16: آشنایی با  GIT

به ازای هرsnapshot یک رشته به عنوان نشانگر تولید

می شود SHA-1

محتوای فایل ها زمان تهیه کاربر

16 رقمی مبنای 40عدد 24b9da6552252987aa493b52f8696cd6d3b0037

3

Gitرشته جادویی

Page 17: آشنایی با  GIT

نصب در ویندوز و لینوکس

ویندوزmsysgit تنظیمات اولیه

نام کاربری و ایمیل)پایان دهنده خط ها ) ویندوز و لینوکس

شروع کار

git config --global user.name "Your Name"git config --global user.email [email protected] config --global core.autocrlf true

Page 18: آشنایی با  GIT

gitسه مرحله کد در

Page 19: آشنایی با  GIT

برای کار بسیار ساده باGit به چهار دستور ساده

نیاز دارید git init برای ایجاد یک : Repositorygit add برای فرستادن فایل به staging git commitgit checkout

دستورات اولیه

Page 20: آشنایی با  GIT

انشعاب( Branching) هرSnapshot یک نشانگر به Snapshot قبلی خود

دارد

انشعاب

Page 21: آشنایی با  GIT

Head , Master

git branch test

branchانشعاب -

Page 22: آشنایی با  GIT

دستورcheckout دو کار انجام می دهد

فایل های جاری را با محتوای انشعاب جایگزین می کند نشانگرHEAD را جابجا می کند

checkoutانشعاب -

git branch testing git checkout testing

Page 23: آشنایی با  GIT

کار در یک انشعاب

#on branch testing git commit

Page 24: آشنایی با  GIT

بازگشت به انشعاب

git checkout master

Page 25: آشنایی با  GIT

تغییر مستقل

Page 26: آشنایی با  GIT

دستورgit merge <other branch<

ابتدا سعی می کند که در میان اجداد دو انشعاب، یکSnapshot مشترک پیدا کند

اگر نسخه حاضر از اجداد مستقیم انشعاب دیگر باشد ، کار Fastراحت است و فقط نشانگر جابجا می شود. )

Forward) در غیر این صورت نزدیکتر نیای مشترک را پیدا کرده و

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

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

Merge ادغام –

Page 27: آشنایی با  GIT

Fast Forward

git checkout mastergit merge hotfix

صورت این Fastدرforward افتد می اتفاق

Page 28: آشنایی با  GIT

نیای مشترک

Page 29: آشنایی با  GIT

حاصل ادغام

Page 30: آشنایی با  GIT

دستورgit log

تاریخچه تغییرات در این انشعاب را نمایش می دهد دستورgit diff

تغییرات فایل ها نسبت بهstaging و یا Head و یا هر نسخه دلخواهی نمایش می دهد

مشاهده تاریخچه

Page 31: آشنایی با  GIT

git برای همه

بخش سوم

Page 32: آشنایی با  GIT

درgit همه کسانی که به Repository دسترسی دارند

همه تغییرات دیگران را می توانند دریافت کنند. هرgit می تواند تعداد دلخواهی از git های دیگر را به

)فامیل دور!( ثبت کند. remoteعنوان بعد از آن می توانید به تبادلsanpshot ها بپردازید

کار گروهی

Page 33: آشنایی با  GIT

git remote add یک فامیل دور بهrepository اضافه

می کند git fetchتغییرات را از فامیل دور دریافت می کند

این تغییرات به صورت یکbranch با اسم خاص ذخیره می شوند

مثالorigin/master حاال برای این که انشعاب نهایی را داشته باشید باید با آن

ادغم انجام دهید مثالgit merge

دستورgit pull این دو کار را همزمان انجام می دهد

remoteدستورات کار با

Page 34: آشنایی با  GIT

git push .انشعاب حاضر را برای فامیل دور می فرستد

این دستور تنها به صورتFast forward کار می کند ،یعنی اگر فامیل دور نسخه متفاوتی از شما داشته باشد

اجازه فرستادن را نمی دهد

دستور فرستادن

Page 35: آشنایی با  GIT

خیلی زیاد انشعاب کنید و خیلی سریع ادغام برای کارهای تک نفره هم ازgit استفاده کنید برای شروع الزم نیست همه دستورات را حفظ باشید در صورت آشنایی با مفاهیم، یک جستجوی ساده برای هر

کار کافی است سایت هایی که سرویی مجانیgit می دهند

GithupBitbbucket.org.…

gitنکته های استفاده از

Page 36: آشنایی با  GIT

پروتکل های ارتباطی( عمل گر های پیشرفته ترrebase) ... و روال های کاری برای پروژه های مختلفgit به عنوان یک ساختار داده و فایل سیستم نوشتنhook …

جلسه بعدی