1 / 36

آشنایی با GIT

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

chana
Download Presentation

آشنایی با GIT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. معرفی • پروژه تاک • اهداف • دعوت به همکاری • ارائه کننده • سید احسان محمودی

  3. سرفصل های وبینار • نگاهی اجمالی به مفاهیم اولیه • نگاهی به تاریخچه • معرفی git • هدف وبینار ترغیب استفاده از مدیریت نسخه برای همگان • جلسه اول مقدماتی • جلسه دوم مفاهیم پیشرفته تر • منبع اصلی کتاب Pro Git

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

  5. پروژه های گروهی یا تک نفره • مدیریت نسخه معمولاً در پروژه های گروهی به کار می رفته • ساختار کلاسیک ابزارها • دردسر راه اندازی سرور • اما در پروژه های تک نفره هم به همان اندازه کاربرد دارد • برای بهتر فهمیدن git بهتر است که به عنوان یک ابزار کاملاٌ محلی و شخصی به آن نگاه شود.

  6. عملکرد های اولیه مدیریت نسخه • Checkout/Update • آخرین نسخه • نسخه ها / بازبینی های قدیمی / مقایسه • Commit • Branching • Merging

  7. انشعاب (Branching) • خیلی از اوقات لازم است که تغییرات از هم مجزا باشند • کار روی دوقسمت کاملاً متفاوت • تغییرات عمده در کد • آزمایش روش های مختلف

  8. سیر تکاملی مدیریت نسخه 1- • روش کاملاً ابتدایی • Rcs • کاملاً محلی (Local)

  9. مدل Client-Server • اکثر ابزارهای کلاسیک مدیریت نسخه • CVS • VSS • Subversion

  10. مشکلات مدل Client-Server • کاملاً متکی به سرور • اگر سرور دچار مشکل شود همه اطلاعات از بین میرود ( تاریخچه) • نیاز به راه اندازی سرور • دسترسی روی اینترنت درسر ساز • کار کردن Offline سخت است

  11. مدل گسترده

  12. Gitبرای یک نفر بخش دوم

  13. مدل تک نفره • Git به عنوان یک ابزار مدیریت نسخه محلی (Local) • اکثر دستورات Git به شکل محلی اجرا می شوند • این تصور به فهم بهتر Git کمک می کند

  14. نحوه نگهداری - تغییرات • در ابزارها کلاسیک • به ازای هر تغییر تنها تفاوت ها نگه داری می شود

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

  16. رشته جادویی Git • به ازای هر snapshot یک رشته به عنوان نشانگر تولید می شود • SHA-1 • محتوای فایل ها • زمان تهیه • کاربر • عدد 40 رقمی مبنای 16 • 24b9da6552252987aa493b52f8696cd6d3b00373

  17. شروع کار • نصب در ویندوز و لینوکس • ویندوز msysgit • تنظیمات اولیه • نام کاربری و ایمیل • پایان دهنده خط ها ( ویندوز و لینوکس) gitconfig --global user.name "Your Name" gitconfig --global user.emailyou@example.com gitconfig --global core.autocrlf true

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

  19. دستورات اولیه • برای کار بسیار ساده با Git به چهار دستور ساده نیاز دارید • gitinit : برای ایجاد یک Repository • git add برای فرستادن فایل به staging • git commit • git checkout

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

  21. انشعاب - branch • Head , Master git branch test

  22. انشعاب -checkout • دستور checkout دو کار انجام می دهد • فایل های جاری را با محتوای انشعاب جایگزین می کند • نشانگر HEAD را جابجا می کند git branch testing git checkout testing

  23. کار در یک انشعاب #on branch testing git commit

  24. بازگشت به انشعاب git checkout master

  25. تغییر مستقل

  26. ادغام – Merge • دستور git merge <other branch> • ابتدا سعی می کند که در میان اجداد دو انشعاب، یک Snapshot مشترک پیدا کند • اگر نسخه حاضر از اجداد مستقیم انشعاب دیگر باشد ، کار راحت است و فقط نشانگر جابجا می شود. (Fast Forward) • در غیر این صورت نزدیکتر نیای مشترک را پیدا کرده و سعی می کند آنها را با هم ادغام کند. • اگر موفق نشد فایل ها را تغییر داده و از کاربر می خواهد که به شکل دستی این کار را انجام دهد

  27. Fast Forward git checkout master git merge hotfix در این صورت Fast forward اتفاق می افتد

  28. نیای مشترک

  29. حاصل ادغام

  30. مشاهده تاریخچه • دستور git log • تاریخچه تغییرات در این انشعاب را نمایش می دهد • دستور git diff • تغییرات فایل ها نسبت به staging و یا Head و یا هر نسخه دلخواهی نمایش می دهد

  31. gitبرای همه بخش سوم

  32. کار گروهی • در git همه کسانی که به Repository دسترسی دارند همه تغییرات دیگران را می توانند دریافت کنند. • هر git می تواند تعداد دلخواهی از gitهای دیگر را به عنوان remote (فامیل دور!) ثبت کند. • بعد از آن می توانید به تبادل sanpshot ها بپردازید

  33. دستورات کار با remote • git remote add یک فامیل دور به repository اضافه می کند • git fetch تغییرات را از فامیل دور دریافت می کند • این تغییرات به صورت یک branch با اسم خاص ذخیره می شوند • مثلاً origin/master • حالا برای این که انشعاب نهایی را داشته باشید باید با آن ادغم انجام دهید • مثلاً git merge • دستور git pull این دو کار را همزمان انجام می دهد

  34. دستور فرستادن • git push انشعاب حاضر را برای فامیل دور می فرستد. • این دستور تنها به صورت Fast forward کار می کند • یعنی اگر فامیل دور نسخه متفاوتی از شما داشته باشد، اجازه فرستادن را نمی دهد

  35. نکته های استفاده از git • خیلی زیاد انشعاب کنید و خیلی سریع ادغام • برای کارهای تک نفره هم از gitاستفاده کنید • برای شروع لازم نیست همه دستورات را حفظ باشید • در صورت آشنایی با مفاهیم، یک جستجوی ساده برای هر کار کافی است • سایت هایی که سرویی مجانی gitمی دهند • Githup • Bitbbucket.org • ….

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

More Related