Upload
chana
View
108
Download
0
Embed Size (px)
DESCRIPTION
آشنایی با GIT . پروژه اشتراک دانش تاک . معرفی . پروژه تاک اهداف دعوت به همکاری ارائه کننده سید احسان محمودی. سرفصل های وبینار . نگاهی اجمالی به مفاهیم اولیه نگاهی به تاریخچه معرفی git هدف وبینار ترغیب استفاده از مدیریت نسخه برای همگان جلسه اول مقدماتی - PowerPoint PPT Presentation
Citation preview
GITآشنایی با
پروژه اشتراک دانش تاک
پروژه تاک
اهدافدعوت به همکاری
ارائه کنندهسید احسان محمودی
معرفی
سرفصل های وبینار
نگاهی اجمالی به مفاهیماولیه
نگاهی به تاریخچه معرفیgit هدف وبینار ترغیب
استفاده از مدیریت نسخه برای همگان
جلسه اول مقدماتی جلسه دوم مفاهیم
پیشرفته تر منبع اصلی کتابPro Git
برای تولید نرم افزار حیاتی است بدون مدیریت نسخه هیچ پروژه گروهی قابل انجام نیست معموال برای پروژه های گروهی به کار می رفته
نیاز به پیکر بندی سرور بوده
چرا مدیریت نسخه
مدیریت نسخه معموال در پروژه های گروهی به کار می
رفته ساختار کالسیک ابزارها دردسر راه اندازی سرور
اما در پروژه های تک نفره هم به همان اندازه کاربرد دارد برای بهتر فهمیدنgit بهتر است که به عنوان یک ابزار
کامال محلی و شخصی به آن نگاه شود.
پروژه های گروهی یا تک نفره
Checkout/Update
آخرین نسخه نسخه ها / بازبینی های قدیمی / مقایسه
CommitBranchingMerging
عملکرد های اولیه مدیریت نسخه
خیلی از اوقات الزم است که تغییرات از هم مجزا باشند
کار روی دوقسمت کامال متفاوت تغییرات عمده در کدآزمایش روش های مختلف
( Branching )انشعاب
سیر تکاملی مدیریت نسخه
1 - روش کامال ابتداییRcs( کامال محلیLocal)
Client-Serverمدل
اکثر ابزارهای کالسیکمدیریت نسخه
CVSVSSSubversion
کامال متکی به سرور
اگر سرور دچار مشکل شود همه اطالعات از بین میرود) تاریخچه(
نیاز به راه اندازی سرور دسترسی روی اینترنت درسر ساز
کار کردنOffline سخت است
-Clientمشکالت مدل Server
مدل گسترده
Git برای یک نفر
بخش دوم
Git ( به عنوان یک ابزار مدیریت نسخه محلی Local)
اکثر دستوراتGit به شکل محلی اجرا می شوند این تصور به فهم بهترGit کمک می کند
مدل تک نفره
نحوه نگهداری - تغییرات
در ابزارها کالسیک به ازای هر تغییر تنها تفاوت ها نگه داری می شود
نگه داری تغییرات -
Snapshots درGit .در هر نسخه تمام فایل نگه داری می شود هر فایلی که تغییر نکرده باشد، یک نشانگر به نسخه قبلی
را نگه می دارد
به ازای هرsnapshot یک رشته به عنوان نشانگر تولید
می شود SHA-1
محتوای فایل ها زمان تهیه کاربر
16 رقمی مبنای 40عدد 24b9da6552252987aa493b52f8696cd6d3b0037
3
Gitرشته جادویی
نصب در ویندوز و لینوکس
ویندوزmsysgit تنظیمات اولیه
نام کاربری و ایمیل)پایان دهنده خط ها ) ویندوز و لینوکس
شروع کار
git config --global user.name "Your Name"git config --global user.email [email protected] config --global core.autocrlf true
gitسه مرحله کد در
برای کار بسیار ساده باGit به چهار دستور ساده
نیاز دارید git init برای ایجاد یک : Repositorygit add برای فرستادن فایل به staging git commitgit checkout
دستورات اولیه
انشعاب( Branching) هرSnapshot یک نشانگر به Snapshot قبلی خود
دارد
انشعاب
Head , Master
git branch test
branchانشعاب -
دستورcheckout دو کار انجام می دهد
فایل های جاری را با محتوای انشعاب جایگزین می کند نشانگرHEAD را جابجا می کند
checkoutانشعاب -
git branch testing git checkout testing
کار در یک انشعاب
#on branch testing git commit
بازگشت به انشعاب
git checkout master
تغییر مستقل
دستورgit merge <other branch<
ابتدا سعی می کند که در میان اجداد دو انشعاب، یکSnapshot مشترک پیدا کند
اگر نسخه حاضر از اجداد مستقیم انشعاب دیگر باشد ، کار Fastراحت است و فقط نشانگر جابجا می شود. )
Forward) در غیر این صورت نزدیکتر نیای مشترک را پیدا کرده و
سعی می کند آنها را با هم ادغام کند. اگر موفق نشد فایل ها را تغییر داده و از کاربر می خواهد
که به شکل دستی این کار را انجام دهد
Merge ادغام –
Fast Forward
git checkout mastergit merge hotfix
صورت این Fastدرforward افتد می اتفاق
نیای مشترک
حاصل ادغام
دستورgit log
تاریخچه تغییرات در این انشعاب را نمایش می دهد دستورgit diff
تغییرات فایل ها نسبت بهstaging و یا Head و یا هر نسخه دلخواهی نمایش می دهد
مشاهده تاریخچه
git برای همه
بخش سوم
درgit همه کسانی که به Repository دسترسی دارند
همه تغییرات دیگران را می توانند دریافت کنند. هرgit می تواند تعداد دلخواهی از git های دیگر را به
)فامیل دور!( ثبت کند. remoteعنوان بعد از آن می توانید به تبادلsanpshot ها بپردازید
کار گروهی
git remote add یک فامیل دور بهrepository اضافه
می کند git fetchتغییرات را از فامیل دور دریافت می کند
این تغییرات به صورت یکbranch با اسم خاص ذخیره می شوند
مثالorigin/master حاال برای این که انشعاب نهایی را داشته باشید باید با آن
ادغم انجام دهید مثالgit merge
دستورgit pull این دو کار را همزمان انجام می دهد
remoteدستورات کار با
git push .انشعاب حاضر را برای فامیل دور می فرستد
این دستور تنها به صورتFast forward کار می کند ،یعنی اگر فامیل دور نسخه متفاوتی از شما داشته باشد
اجازه فرستادن را نمی دهد
دستور فرستادن
خیلی زیاد انشعاب کنید و خیلی سریع ادغام برای کارهای تک نفره هم ازgit استفاده کنید برای شروع الزم نیست همه دستورات را حفظ باشید در صورت آشنایی با مفاهیم، یک جستجوی ساده برای هر
کار کافی است سایت هایی که سرویی مجانیgit می دهند
GithupBitbbucket.org.…
gitنکته های استفاده از
پروتکل های ارتباطی( عمل گر های پیشرفته ترrebase) ... و روال های کاری برای پروژه های مختلفgit به عنوان یک ساختار داده و فایل سیستم نوشتنhook …
جلسه بعدی