تاثیر ورژن کنترل Git در زندگی کاری برنامه نویس ها

  • گیت "GIT" چیست

با جستجوی عبارت "گیت چیست" تعداد زیادی مقاله فارسی و انگلیسی درباره اینکه گیت چیه و چیکار میکنه به شما نشان داده خواهد شد. که البته خیلی کامل تر از این یک پاراگرافی که من برای عبارت (گیت چیست) در نظر گرفتم. اما هدف من توی این مقاله توضیح کامل دستورات و آرگومان های گیت نیست، الان خیلی ساده میخوایم ببینیم چطوری میتونیم باهاش کارمون رو راحتتر کنیم بدون اینکه درگیر همه جزئیاتش بشیم. ولی کلی بگم که وجود ورژن کنترل گیت توی دنیای برنامه نویسی مثل صنعتی شدن پلاستیک توی سال 1930 میلادیه، بدون پلاستیک و گیت، دنیا به آخر نمی رسه ولی با وجودشون زندگی کلی آسون تر میشه پس پیشنهاد میدم اگه برنامه نویس هستید قورباغه تون رو قورت بدید شروع به تستش کنید.

آقای لینوس توروالدز (خالق گیت و لینوکس)
آقای لینوس توروالدز (خالق گیت و لینوکس)

از اونجایی که حدس میزنم به دنیای کامپیوتر و دیجیتال علاقه مند اید که دارید این مقاله رو میخونید احتمالا با لینوس توروالدز هم آشنا هستید! کسی که هسته سیستم عامل محبوب لینوکس رو طراحی کرده و در سال 2005 میلادی، ورژن کنترل گیت رو بهمون هدیه داد. بعید میدونم الان بتونید شرکت نرم افزاریه به روز و درست حسابی پیدا بکنید که سورس برنامه هاشون رو با ورژن کنترل "VCS" هایی مثل گیت مدیریت نکنند!

البته این هم بگم در کنار راحتی که گیت میاره، بسیار هم استرس زاست! استرسش هم از اینه که وقتی همه چیز ثبت و ضبط بشه راحت میشه مقصر رو پیدا کرد :) اینکه کی کد اشتباه زده، کی کم کاری کرده! کی باگه رو به وجود آوره و... و خب همیشه احتمال اینکه خودمون اون شخص باشیم هست!

  • اما میرسیم به اصل مطلب :)

ممکنه همه توسعه دهنده هایی که دارن این مقاله رو میخونن شاغل در شرکت های تولید و پشتیبانی نرم افزار نباشن و فکر کنن نیازی به یادگیری گیت ندارن! اما گیت حتی برای یک توسعه دهنده شخصی هم لازمه. فرض کنید بعد ساعت کاری توی منزل دارید یک پروژه شخصی رو توسعه میدید و فردا که به سرکار برگشتید قصد دارید توی زمان های استراحتی که واحد مدیریت HR برای کارمنداشون مشخص کرده بجای قدم زدن توی محوطه و چرخیدن توی شبکه های مجازی! کدهای شب قبلی که توی خونه نوشتید رو کامل کنید! برای انجام این کار بدون گیت باید یه فلش یا هاردی چیزی همراهتون باشه هی سورس آپدیت شده رو باهاش اینور اونور کنید :| اما با گیت ...

1- اول فایل نصبی خود گیت رو دانلود و روی سیستم خونه و سیستم های دیگه ای که میخوایید باهاشون کار کنید نصب کنید.

2- برید داخل سایت گیت هاب و ثبت نام کنید. ( گیت هاب چند روز پیش تحریم های ساخت مخازن خصوصی "Private Repository" رو برای ما ایرانی ها که چند سال بود اعمال شده بود رو برداشت).

3- از ترمینال یا اگه از سیستم عامل ویندوز استفاده میکنید توی CMD باید با دستورات زیر نام کاربری و ایمیل خودتون رو ست کنید ( بهتره از همون نام کاربری و ایمیلی استفاده کنید که توی گیت هاب باهاش ثبت نام کردید، وگرنه میاد هر نام کاربری رو یه کاربر جدا در نظر میگیره توی کامیت ها "Commit" یا همون ثبت تغییرات کد ها).

ست کردن نام کاربری کلی برای سیستم : ( توجه: بین " " نام دلخواه خودتون رو وارد کنید )

git config --global user.name &quotJohn Doe&quot

ست کردن ایمیل کلی برای سیستم : (البته اینم بگم برای هر پروژه میتونید جدا کاربر تعریف کنید و نیازی به کاربر کلی ندارید)

git config --global user.email johndoe@example.com

4- باید برید توی حساب کاربری خودتون در گیت هاب وارد بشید و یک مخزن یا همون ( ریپازیتوری Repository ) جدید بسازید! اگه یک پروژه خصوصی هست و قرار نیست عموم مردم اون رو ببیند، تیک گزینه Private رو بزنید تا فقط شما و کسایی که شما مشخص می کنید بتونند مخزن رو مشاهده و ویرایش کنند. در غیر اینصورت تیک Public رو بزنید تا برنامه نویس های دنیا بتونن کار شما رو مشاهده و درصورت علاقه شون به پروژه شما بهتون توی توسعه اش کمک کنند.

5- باید سورس خودمون رو به مخزن گیت هابی که ساختیم متصل کنیم! برای این کار ترمینال یا CMD رو باز میکنیم و وارد مسیر پوشه سورس پروژه مون میشیم.

-- قدم اول میایم با دستور زیر ورژن کنترل گیت رو برای پروژه مون استارت میکنیم :

git init

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

git add .

نکته : شما میتونید با ساخت یک فایل بی نام و با پسوند .gitignore در مسیر روت سورس مخزن خودتون، پوشه ها و فایل هایی که نمی خواهید داخل گیت قرار بگیرن رو داخلش مشخص کنید.

از این به بعد هر تغییراتی که در سورس خودمون اعمال کردیم رو ثبت می کنیم که در اصطلاح بهش کامیت "Commit" کردن میگن! با دستور زیر میتونیم این کار رو انجام بدیم :

git commit -m &quotfirst commit&quot

-- در قدم دوم باید سورس خودمون رو به مخزنی که داخل گیت هاب ساختیم متصل کنیم. (در انتهای دستور زیر یک آدرس وب گیت هاب هست که شما باید اون رو با آدرس وب مخزن خودتون که در گیت هاب ساختید عوض کنید)

git remote add origin https://github.com/yourUserName/Name.git

و در مرحله آخر تغییرات انجام شده مون رو با دستور زیر وارد مخزن پروژه مون در گیت هاب میکنیم یا به اصطلاح پوش "Push" می کنیم و صبر میکنیم تا کار آپلود فایل ها تموم بشه :

git push origin master

به همین آسونی ! البته اینم بگم دستورات بالا همه شون آرگومنت "Argument" های مخصوص دیگه ای دارن مثل مشخص کردن شاخه ها "Branch" و... که من خواستم ساده ترین حالتش رو بگم. بزارید یه کوچولو درباره این شاخه ها یا برنچ ها هم بگم دیگه تا اینجا اومدیم :) فرض کنید ما یه شاخه اصلی داریم از سورس مون به نام Main یا اصلی و یک شاخه دیگه به اسم "Test" یا همون آزمایشی مثلا! که کد های ریسکی و آزمایشی مون برای یک قابلیت جدید رو اول به اون شاخه پوش "Push" میکنیم، بعد اگه اوکی بودیم باهاش و خواستیم به بدنه پروژه اصلیمون اضافه بشه اون شاخه آزمایشی رو با شاخه اصلی یکی میکنیم با به اصطلاح مرج "Merge" میکنیم.

  • کپی پروژه گیت هاب به یک سیستم دیگر :

حالا تو هر سیستم دیگه ای بجز سیستم خودمون که میخواییم باهاش روی پروژه کار کنیم کافیه یکبار پروژه رو با دستور زیر از گیت هاب کپی "Clone" کنیم روی سیستم جدید: ( آدرس گیتهاب پروژه خودتون رو بزارید انتهای دستور زیر و در CMD واردش کنید تا پروژه رو توی سیستم جدید دانلود کنه! )

git clone https://github.com/USERNAME/REPOSITORY.git

حالا میتونید توی این سیستم هم همون سورس کد رو داشته باشید و تغییرات خودتون رو اعمال کنید. و کامیت و پوش :)

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

git pull

تمام! حالا هی قهوه بخورید هی پوش "Push" کنید هی پول "Pull" کنید :)