****** ** GIT - درباره پروژه تاک
Download
Report
Transcript ****** ** GIT - درباره پروژه تاک
پروژه اشتراک دانش تاک
معرفی
پروژه تاک
اهداف
دعوت به همکاری
ارائه کننده
سید احسان محمودی
سرفصل های وبینار
نگاهی اجمالی به مفاهیم اولیه
نگاهی به تاریخچه
معرفی git
هدف وبینار ترغیب استفاده از
مدیریت نسخه برای همگان
جلسه اول مقدماتی
جلسه دوم مفاهیم پیشرفته تر
منبع اصلی کتاب Pro Git
چرا مدیریت نسخه
برای تولید نرم افزار حیاتی است
بدون مدیریت نسخه هیچ پروژه گروهی قابل انجام نیست
ً
و
و
معموال برای پر ژه های گر هی به کار می رفته
نیاز به پیکر بندی سرور بوده
پروژه های گروهی یا تک نفره
ً
مدیریت نسخه معموال در پروژه های گروهی به کار می رفته
ساختار کالسیک ابزارها
دردسر راه اندازی سرور
اما در پروژه های تک نفره هم به همان اندازه کاربرد دارد
ٌ
برای بهتر فهمیدن gitبهتر است که به عنوان یک ابزار کامال محلی و شخص ی به آن
نگاه شود.
عملکرد های اولیه مدیریت نسخه
Checkout/Update
آخرین نسخه
نسخه ها /بازبینی های قدیمی /مقایسه
Commit
Branching
Merging
انشعاب )(Branching
خیلی از اوقات الزم است که تغییرات از هم مجزا باشند
ً
کار روی دوقسمت کامال متفاوت
تغییرات عمده در کد
آزمایش روش های مختلف
سیر تکاملی مدیریت نسخه 1-
ً
روش کامال ابتدایی
Rcs
ً
کامال محلی )(Local
Client-Server مدل
اکثر ابزارهای کالسیک مدیریت نسخه
CVS
VSS
Subversion
مشکالت مدل Client-Server
ً
کامال متکی به سرور
اگر سرور دچار مشکل شود همه اطالعات از بین میرود ( تاریخچه)
نیاز به راه اندازی سرور
دسترس ی روی اینترنت درسر ساز
کار کردن Offlineسخت است
مدل گسترده
بخش دوم
مدل تک نفره
Git به عنوان یک ابزار مدیریت نسخه محلی )(Local
اکثر دستورات Gitبه شکل محلی اجرا می شوند
این تصور به فهم بهتر Gitکمک می کند
نحوه نگهداری -تغییرات
در ابزارها کالسیک
به ازای هر تغییر تنها تفاوت ها نگه داری می شود
نگه داری تغییرات Snapshots -
در Gitدر هر نسخه تمام فایل نگه داری می شود.
هر فایلی که تغییر نکرده باشد ،یک نشانگر به نسخه قبلی را نگه می دارد
رشته جادویی Git
به ازای هر snapshotیک رشته به عنوان نشانگر تولید می شود
SHA-1
محتوای فایل ها
زمان تهیه
کاربر
عدد 40رقمی مبنای 16
24b9da6552252987aa493b52f8696cd6d3b00373
شروع کار
نصب در ویندوز و لینوکس
msysgit ویندوز
تنظیمات اولیه
نام کاربری و ایمیل
) پایان دهنده خط ها ( ویندوز و لینوکس
git config --global user.name "Your Name"
git config --global user.email [email protected]
git config --global core.autocrlf true
سه مرحله کد در git
دستورات اولیه
برای کار بسیار ساده با Gitبه چهار دستور ساده نیاز دارید
: git init برای ایجاد یک Repository
git add برای فرستادن فایل به staging
git commit
git checkout
انشعاب
انشعاب )(Branching
هر Snapshotیک نشانگر به Snapshotقبلی خود دارد
branch - انشعاب
Head , Master
git branch test
انشعاب checkout -
دستور checkoutدو کار انجام می دهد
فایل های جاری را با محتوای انشعاب جایگزین می کند
نشانگر HEADرا جابجا می کند
git branch testing
git checkout testing
کار در یک انشعاب
#on branch testing
git commit
بازگشت به انشعاب
git checkout master
تغییر مستقل
ادغام – Merge
دستور >git merge <other branch
ابتدا سعی می کند که در میان اجداد دو انشعاب ،یک Snapshotمشترک پیدا
کند
اگر نسخه حاضر از اجداد مستقیم انشعاب دیگر باشد ،کار راحت است و فقط
نشانگر جابجا می شود(Fast Forward) .
در غیر این صورت نزدیکتر نیای مشترک را پیدا کرده و سعی می کند آنها را با هم ادغام
کند.
اگر موفق نشد فایل ها را تغییر داده و از کاربر می خواهد که به شکل دستی این کار را
انجام دهد
Fast Forward
git checkout master
git merge hotfix
Fast forward در این صورت
اتفاق می افتد
نیای مشترک
حاصل ادغام
مشاهده تاریخچه
دستور git log
تاریخچه تغییرات در این انشعاب را نمایش می دهد
دستور git diff
تغییرات فایل ها نسبت به stagingو یا Headو یا هر نسخه دلخواهی نمایش می
دهد
gitبرای همه
بخش سوم
کار گروهی
در gitهمه کسانی که به Repositoryدسترس ی دارند همه تغییرات دیگران را
می توانند دریافت کنند.
هر gitمی تواند تعداد دلخواهی از gitهای دیگر را به عنوان ( remoteفامیل
دور!) ثبت کند.
بعد از آن می توانید به تبادل sanpshotها بپردازید
دستورات کار با remote
git remote add یک فامیل دور به repositoryاضافه می کند
git fetch تغییرات را از فامیل دور دریافت می کند
این تغییرات به صورت یک branchبا اسم خاص ذخیره می شوند
ً
مثال origin/master
حاال برای این که انشعاب نهایی را داشته باشید باید با آن ادغم انجام دهید
ً
مثال git merge
دستور git pullاین دو کار را همزمان انجام می دهد
دستور فرستادن
git push انشعاب حاضر را برای فامیل دور می فرستد.
این دستور تنها به صورت Fast forwardکار می کند
یعنی اگر فامیل دور نسخه متفاوتی از شما داشته باشد ،اجازه فرستادن را نمی دهد
نکته های استفاده از git
خیلی زیاد انشعاب کنید و خیلی سریع ادغام
برای کارهای تک نفره هم از gitاستفاده کنید
برای شروع الزم نیست همه دستورات را حفظ باشید
در صورت آشنایی با مفاهیم ،یک جستجوی ساده برای هر کار کافی است
سایت هایی که سرویی مجانی gitمی دهند
Githup
Bitbbucket.org
….
جلسه بعدی
پروتکل های ارتباطی
عمل گر های پیشرفته تر (rebaseو ) ...
روال های کاری برای پروژه های مختلف
git به عنوان یک ساختار داده و فایل سیستم
نوشتن hook
…