مدیریت ورژن

(Software Configuration Management (SCM

نوشته شده توسط امین سجودی

سلام

نمی دونم چقدر با این ها آشنا هستید ولی یکی از دوستان گفت که یک آموزش برای gitHub بذارم ، امیدوارم به درد همه بخوره

چون توضیحش یه ذره سخته خیلی خودمونی صحبت می کنم :دی دوستان به بزرگی خودشون ببخشن

قضیه SCM اینه که شما وقتی می خواید رو یک پروژه کار کنید و نیاز به همکاری با چند نفر دیگه رو دارید مشکلات اساسی پیدا می شه که می تونه باعث کند شدن روند پیشرفت پروژه بشه .

برای همین اومدن یک چیزی نوشتن که بشه باهاش چند نفر همزمان روی یک پروژه کار کنن و هر تغییری که هر کسی میده روی پروژه دیگران اعمال بشه .

حالا GIT و SVN  و … در حقیقت همین SCM هستند .

GITHUB یک سایتی که خدمات GIt رو ارائه می ده و بابت پروژه های Commercial ماهیانه پول می گیره ولی بابت پروژه های مجانی و اوپن سورس این خدمات رو مجانی ارائه می ده .

Git و SVN تفاوت هایی دارن ولی من فقط GIT رو توضیح خواهم داد.

به جایی که شما کدها تون رو اونجا می فرستید میگن Repository . و ارسال کد ها به ریپازیتوری در اصطلاح Commit گفته میشه . 

توی Git شما یک ریپازیتوری توی کامپیوتر خودتون ایجاد می کنید و شروع به کار می کنید . پس اینکه هر ویژگی کامل و تست شده و یا باگی رو درست کردید یک بار تغییرات خودتون رو روی ریپازیتوری کامیت می کنید .

پس از این برای اینکه بقیه اعضای گروه هم بتونن تغییرات شما رو داشته باشن باید به سرور وصل شوید و ریپازیتوری خودتون رو به جای ریپایزیتوری قبلی سرور جایگزین کنید . به این کار در اصطلاح PUSH می گن.

حالا فرض کنیم شما یه مدت روی پروژه کار نکردید و می خواید تغییرات جدید که هم تیمی های شما روی پروژه اعمال کردن رو داشته باشید . برای اینکار باید ریپازیتوری سرور رو بگیرید. به این کار میگن PULL .

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

می تونید مستقیم git رو از سایتش دانلود کنید و با دستوراتش توی Command-line کار کنید . ولی من که حسش رو ندارم این همه دستور رو حفظ کنم پس از یک نرم افزار که این کار رو با gui انجام میده استفاده می کنم به نام SourceTree

لینک

دقت کنید موقع نصبش از شما می پرسه که git و Mercurial رو دانلود کنه که ما فقط git رو می خوایم و نیازی به دومی نداریم.

خوب برای اینکه شما بتونید روی پروژه کار کنید ۲ راه وجود داره :

۱- اینکه اکانت github تون رو به من بگید تا شما رو هم جزو همکاران پروژه اضافه کنم .

۲- اینکه پروژه رو Fork کنید و پس از اینکه تغییرات تون رو اعمال کردید و با دستور Pull Request به من خبر بدید که تغییرات شما رو به پروژه اصلی اضافه کنم .(روش معمول وقتی سازنده اصلی پروژه رو نمی شناسید)

روش اول :

پس از اینکه SourceTree رو دانلود کردید و به صفحه پروژه رفتید روی دکمه که توی عکس نشون می دم کلیک کنید .

لینک عکس ۱

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

حالا با باز کردن Source Tree باید خودتون رو به این صفحه برسونید :دی 

من از File دکمه New/Clone رو کلیک کردم.

حالا ctrl + v بزیند تا آدرس پروژه git که قبلا دیدیم رو وارد کنه .

لینک عکس ۲

مسیر پروژه رو روی کامپیوتر خودتون تنظیم کنید . (هر جایی دوست داشتید :دی) و روی دکمه Clone کلیک کنید .

حالا نرم افزار به سرور وصل می شه و آخرین ورژن پروژه رو دانلود میکنه

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

برای مثال می تونید به فایل در ابتدای یکی از کلاس ها یک خط کامنت بذارید .

حالا به SourceTree برگردید . می بینید که این نرم افزار تغییر شما رو متوجه شده و اون رو برای شما نشون میده .(ممکنه که یکسری فایل دیگه هم عوض شده باشه که فرمتشون .meta هستش)

حالا فرض کنیم شما دیگه نمی خواید تغییر دیگه ای بدید و همین کافیه . خوب حالا یه بار بازی رو از توی یونیتی ران کنید و اگه مشکلی نداشت ، توی SourceTree روی دکمه Commit کلیک کنید و یه توضیحی در مورد تغییری که دادید بنویسید . 

این یه تمرین خوبه که همیشه یه متن بامعنی رو در توضیح کامیت تون بنویسید که دیگران هم متوجه تغییر شما بشوند .

لینک عکس ۳

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

بعد توی Source Tree روی دکمه تنظیمات کلیک کنید .

لینک عکس ۴

توی Remotes روی دکمه Add کلیک کنید و اطلاعات رو به صورتی که در عکس پایین نشون دادم وارد کنید . به جای *** هم یوزر Github خودتون رو وارد کنید .

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

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

حالا روی دکمه Push کلیک کنید . شکلش این جوریه 

عکس 5

صفحه ای باز می شه که بالای اون نوشته Push To Repasitory که داره مقصد شما برای ارسال کد رو نشون میده

عکس ۶

روی دکمه ok کلیک کنید . پس از مدتی کد های شما روی سرور فرستاده می شه و همه می تونن اون ها رو ببینند و ازشون استفاده کنند .

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

عکس ۷

توی صفحه ای که میاد در قسمت Remote Branch To Pull باید شاخه ای رو که می خواید از اون کد ها رو دریافت کنید رو انتخاب کنید . (اگه عمری باقی بود در مورد Branch هم توضیح خواهم داد) فعلا روی Master رو انتخاب کنید .

عکس ۸

با زدن دکمه ok آخرین تغییرات برای شما ارسال می شه . و اگه لازم باشه تغییرات با پروژه شما مرج میشه.

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

امین سجودی

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

اضافه کردن دیدگاه

دو + 5 =