لوگو گیت

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

لطفا به ادامه مطلب مراجعه فرمایید.

مقدمه

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

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

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

ما در این نوشته به آموزش استفاده از نرم افزار کنترل نسخه گیت (به انگلیسی: Git) تحت ویندوز با رابط کاربری گرافیکی (GUI) می پردازیم از آنجا که نرم افزار گیت برای سیستم عامل لینوکس طراحی شده یک رابط کاربری مبتنی بر خط فرمان (CMD) به نام Bash هم دارد که نحوه استفاده از آن را می توانید در این لینک ببینید.

 

دانلود و نصب Git

برای دانلود git به این لینک مراجعه کرده و یک نسخه با توجه به 32 یا 64 بیتی بودن سیستم عاملتان انتخاب کنید.

نصب نرم افزار گیت هم بسیار ساده است و تنها کافی است پس از کلیک بر روی آیکن ستاپ و باز شدن آن چند بار بروی Next کلیک کنید.

 

پیکربندی 

برای پیکربندی گیت بر روی پروژه تان کافی است بر روی پوشه پروژه راست کلیک کرده و گزینه Git GUI Here را انتخاب کنید تا با صفحه زیر رو برو شوید.

نرم افزار git

تصویر 1

در این صفحه گیت از شما میخواهد که یا مخزن جدیدی ایجاد کنید و یا از مخازن گذشته استفاده نمایید. شما بر روی اولین مورد یعنی Create New Repository برای ساخت مخزن جدید کلیک کنید.

نرم افزار git

تصویر 2

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

در مرحله بعد بر روی Browse برای انتخاب پوشه پروژه مورد نظر کلیک کنید و سپس همچون تصویر پوشه را انتخاب کرده و بر روی Select Folder کلیک کنید.

نرم افزار git

تصویر 3

نرم افزار git

تصویر 4

در نهایت با کلیک بر روی Create به ساخت مخزن گیت خاتمه دهید.

نرم افزار git

تصویر 5

در مرحله بعد پنجره ای همانند شکل زیر باز می شود:

نرم افزار git

تصویر 6

در این پنجره به منو ویرایش (Edit) رفته و بر روی گزینه ها (Option) کلیک کنید تا پنجره زیر نمایش داده شود :

نرم افزار git

تصویر 7

این پنجره دو قسمت شبیه به هم دارد تنظیماتی که در سمت راست انجام می دهید بر کل نرم افزار گیت در تمام پروژه ها اعمال می شود اما گزینه های سمت چپ تنها تنظیمات را بر روی همین پروژه در حال اجرا اعمال خواهد کرد. در پنجره باز شده دو گزینه اول که با رنگ زرد مشخص شده اند یعنی نام کاربر (User Name) و آدرس ایمیل (Email Address) را باید حتما وارد کنید تا بتوانید داده ها و تغییرات ایجاد شده بر روی پروژه را در نرم افزار گیت ذخیره کنید. پس از وارد کردن نام کاربری و ایمیل بر روی ذخیره (Save) در پایین پنجره کلیک کنید.

در این قسمت پیکربندی نرم افزار گیت برای این پروژه به پایان میرسید. در ادامه پس از آشنایی با صفحه مدیریت پروژه (تصویر 6) به نحوه کنترل نسخه های پروژه در نرم افزار گیت (git) خواهیم پرداخت.

 

آشنایی با صفحه مدیریت پروژه در گیت

پنجره کنترل نسخه در نرم افزار گیت شامل 8 بخش به صورت زیر می باشد :

نرم افزار git

تصویر 8

  1. بخش اول این صفحه شامل منو هایی به شرح زیر می باشد :
    • مخزن (Repository): این فهرست منوی اصلی نرم افزار است و در این بخش دسترسی به ابزاری هایی برای مشاهده و کنترل نسخه وجود دارد که شامل موارد زیر می باشد :
      • (Explore Working Copy) : این قسمت فایل های یک شاخه یا نسخه از نرم افزار را نمایش می دهد.
      • (Git Bash): محیط Bash گیت را اجرا می کند.
      • (Browse master's Files) : مرور فایل های شاخه یا نسخه جاری (Current Branch) پروژه را نمایش می دهد
      • (Browse Branch Files...) : مروری از فایل های یک شاخه یا نسخه خاص را نمایش می دهد.
      • (Visualize master's History) : تاریخچه ای از تغییرات صورت گرفته در یک نسخه خاص را نمایش می دهد.
      • (Visualize All Branch History) : تاریخچه ای از تغییرات صورت گرفته در تمام نسخه ها را نمایش می دهد.
      • (Database Statistics) : آمار و ارقام پایگاه داده را برای پروژه نمایش می دهد.
      • (Compress Database) : پایگاه داده را فشرده می کند و قسمت های اضافی را حذف می کند.
      • (Verify Database) : سلامت پایگاه های داده را بررسی می کند.
      • (Create Desktop Icon) :  یک لینک به مخزن پروژه بر روی دستکتاپ ایجاد می کند.
      • (Quit) : از گیت خارج می شود.
    • ویرایش (Edit): در این منو ابزارهای معمول ویرایش شامل Undo, Redo, Cut, Copy, Past, Delete, Select All وجود دارد آخرین مورد در این فهرست Option هست که شامل مواردی برای تنظیمات نرم افزار است.
    • شاخه یا نسخه (Branch): شامل موارد زیر برای کنترل نسخه است.
      • (Create) : ایجاد یک نسخه یا شاخه جدید در پروژه
      • (Checkout) : تغییر شاخه پروژه
      • (Rename) : تغییر نام شاخه یا نسخه پروژه
      • (Delete) : حذف یک شاخه یا نسخه از پروژه
      • (Reset) : حذف محتویات یک نسخه از پروژه
    • سپردن (Commit): ابزار های سپردن داده ها به پایگاه داده در این بخش قرار دارد
      • (New Commit) : گیت را برای ذخیره تغییرات جدید در پایگاه داده آماده می کند
      • (Amend Last Commit) : آخرین تغییرات ذخیره شده در پایگاه داده را نمایش می دهد.
      • (Rescan) : فایل های پروژه را برای یافتن تغییرات بررسی می کند.
      • (Stage To Commit) : فایل انتخاب شده را برای ذخیره در پایگاه داده به صحنه می برد.
      • (Stage Changed Files To Commit) : تمام فایل های تغییر کرده را برای ذخیره به صحنه می برد.
      • (Unstage From Commit) : فایل انتخاب شده را از صحنه خارج می کند.
      • (Revert Changes) : تغییرات فایل انتخاب شده را لغو می کند.
      • (Show Less Context) : محتوای نمایش داده شده از فایل را کمتر می کند.
      • (Show More Context) : محتوای نمایش داده شده از فایل را بیشتر می کند.
      • (Sing Off) : متن Signed-off-by را در قسمت توضیحات commit نمایش می دهد.
      • (Commit) : تغییرات را در پایگاه داده ذخیره می کند.
    • ادغام (Merge) : با استفاده از این منو میتوان شاخه ها یا نسخه ها(Branch) های مختلف را در هم ادغام کرد.
    • از راه دور (Remote) : با گزینه های این منو می توان داده های مخزن را در فایل جداگانه ای قرار داد و به کامپیوتر های دیگر منتقل کرد. این فهرست شامل موارد زیر است :
      • (Add) : افزودن یک Remote 
      • (Push) : قرار دادن تغییرات جدید نسخه ها در Remote
      • (Delete Branch) : حذف یک شاخه (Branch) از Remote
        به این منو پس از افزودن یک Remote گذینه های زیر هم اضافه خواهند شد :
      • (Fetch from) : این گزینه داده های Remote انتخاب شده را وارد مخزن این پروژه در گیت می کند.
      • (Prune from) : داده های موجود در Remote انتخاب شده را هرس می کند.
      • (Remove Remote) : اقدام به حذف کردن Remote انتخاب شده می کند.
    • ابزار (Tools) : این منو به امکان اضافه کردن ابزار های دیگر به گیت را می دهد.
    • کمک (Help) : همچون تمامی نرم افزار ها این منو دارای راهنمایی ها و نکاتی برای استفاده از نرم افزار است.
  2. این بخش شاخه یا نسخه (Branch) حال حاضر پروژه را که تغییرات در آن ذخیره می شوند را نمایش می دهد.
  3. این بخش لیست فایل هایی از پروژه که به تازگی تغییر یافته اند اما هنوز در پایگاه داده گیت ذخیره نشده اند را نمایش می دهد.
  4. محتوی فایل انتخاب شده از قسمت 3 و 5 را نمایش می دهد.
  5. فایل هایی از پروژه که از قسمت 3 انتخاب شده اند و جهت ذخیره در پایگاه داده به صحنه (Stage) آمده اند را نمایش می دهد.
  6. بخشی از امکانات نرم افزار که بیشتر استفاده می شوند.
  7. وضعیت نرم افزار گیت که آماده برای ذخیره تغییرات جدید (New Commit) و یا ویرایش آخرین تغییرات ذخیره شده (Amend Last Commit) است.
  8. این قسمت برای وارد کردن پیامی که جهت ذخیره (Commit) تغییرات در پایگاده داده اجباری است می باشد.

 

کنترل نشخه پروژه با git

قبل از هرچیز در اولین مرحله گیت (git) را برای این پروژه همچون بخش پیکربندی این آموزش پیکربندی می کنیم.

پس از اینکه برای اولین بار پنجره کنترل نسخه نرم افزار گیت (تصویر 6) باز شد. در بخش Unstaged Changes (یا طبق تقسیم بندی تصویر 8 بخش 3) لیستی از فایل های موجود در پوشه پروژه انتخابی تان می بینید. (تصویر 6) در صورتی که روی هر کدام از فایل ها کلیک کنید محتوی آن و یا متنی مربتط با آن در بخش 4 (طبق تصویر 8) خواهید دید.

همچنین در قسمت 2 می توانید نسخه حال حاضر را ببینید که master می باشد. نسخه یا شاخه (Branch) مستر (master) شاخه ایست که به صورت خودکار توسط گیت ایجاد می شود و در واقع می توانید به آن به صورت یک نسخه نهایی از پروژه تان نگاه کنید.

 

ذخیره یا سپردن (Commit) تغییرات به پایگاه داده

برای ذخیره اولین تغییرات نسخه پروژه تان می توانید بدین صورت عمل کنید:

فایل هایی که میخواهید تغییراتشان را در پایگاه داده ذخیره (Commit) کنید را انتخاب کرده و بر روی تغییر صحنه (Stage Changed) از بخش 6 (طبق تصویر 8) کلیک کنید تا به بخش (Will Commit) Staged Changes  منتقل شوند سپس در قسمت Initial Commit Message متنی را وارد کنید و در نهایت بر روی سپردن (Commit) کلیک کنید تا تغییرات به پایگاه داده سپرده (ذخیره) شوند. به ترتیب مثل تصویر زیر عمل کنید.

نرم افزار git

تصویر 9

پس از این کار تمام فایل ها از لیست پاک می شوند و این یعنی عملیات با موفقیت انجام شده است. برای جدیدترین تغییراتی که به پایگاه داده سپرده اید (Commit) باید در از بخش 7 (طبق تصویر 8) بر روی Amend Last Commit کلیک کنید.

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

 

ساخت نسخه یا شاخه (Branch) جدید

برای ایجاد یک نسخه، شاخه (یا Branch) جدید لازم است به ترتیب زیر عمل کرد :

بر روی Create از منو Branch کلیک کنید تا پنجره زیر ظاهر شود، سپس قسمت نام شاخه یا نسخه مورد نظرتان را در قسمت (Name) وارد کنید و Local Branch را از قسمت Starting Revision انتخاب کنید. پس از این کار در لیست نام شاخه یا نسخه master که به صورت خودکار توسط گیت برای پروژه ما ایجاد شده است نمایش داده می شود آن را انتخاب کنید و بر روی Create در انتهای صفحه کلیک کنید.

نرم افزار git

تصویر 10

پس از ساخت این نسخه می توانیم باز هر مقدار تغییرات را در این نسخه اعمال کرده و نتایج را به پایگاه داده بسپاریم (Commit).

 

جابجایی بین نسخه ها (Checkout)

برای جابجا شدن بین نسخه ها که اصطلاحا به آن در گیت ...Checkout میگویند بایستی بر روی گزینه Checkout در منو Branch کلیک کرده و از لیست ظاهر شده شاخه مورد نظر را انتخاب و بر روی Checkout در پایین پنجره کلیک کنید. پس از آن می بینید که شاخه یا نسخه (Brach) جاری در که در قسمت 2 (طبق تصویر 8) نمایش داده شده است به نسخه جدید تغییر می کند.

نرم افزار git

تصویر 11

دسترسی به فایل های ورژن قبل (Explore Working Copy)

حال اگر بخواهیم به داده های خود در ورژن قبلی دسترسی داشته باشیم بایستی بر روی گزینه Explore Working Copy در منو مخزن (Repository) کلیک کنیم اما قبل از این کار توجه داشته باشید که با کلیک بر روی این گزینه بلافاصله پوشه حاوی فایل های پروژه باز خواهد شد و تغییرات نسخه انتخابی در این پوشه جایگزین می شود یعنی مثلا اگر فایل متنی با نام readme.txt در پروژه داشته باشید و محتوای آن را تغییر داده باشید در صورت کلیک روی این گذینه محتوی قبلی آن به جای محتوی که جدیدا تغییر داده اید قرار خواهد گرفت.

 

ادغام نسخه ها (Merge)

ادغام تغییرات دو نسخه نیز با این نرم افزار امکان پذیر است یعنی می توان تغییرات اعمال شده بر روی نسخه 3 را با نسخه 2 ادغام کرد (بلعکس ممکن نیست یعنی نمیتوان تغییرات نسخه 2 را بر نسخه 3 اعمال کرد بلکه می توان آن را با نسخه 1 ادغام کرد) بدین منظور بایستی ابتدا به نسخه کمتر (یعنی اگر ادغام نسخه 3 با 2 است به نسخه 2) جابجا (Checkout) شویم و سپس با کلیک بر روی گزینه Local Merge از منو Merge پنجره ادغام را باز کنیم (تصویر زیر) در این پنجره بر روی Local Branch کلیک کرده و از لیست موجود نسخه بالاتر (در این مثال نسخه 3) را انتخاب می کنیم و بر روی Merge کلیک می کنیم.

نرم افزار git

تصویر 12

حذف نسخه یا شاخه (Branch)

برای حذف یک شاخه یا نسخه (Branch) از نرم افزار کافی است بر روی Delete از منو Branch کلیک کرده و در پنجره ای که باز می شود از قسمت Local Branches شاخه یا نسخه مورد نظر خود را انتخاب کنیم، قسمت Delete Only If Merged Into به ما کمک می کند که یک شرط برای حذف شدن نسخه قرار دهیم به این صورت که تنها اگر نسخه انتخاب شده در بالا در نسخه انتخاب شده از لیست پایین ادغام شده بود آنگاه آن را حذف کن (تصویر 12)، اما در صورتی که مایل نبودیم هیچ شرطی قرار دهیم کافی است گزینه Always (Do not perform merge checks ) را انتخاب کنیم (تصویر 13) و بر روی Delete کلیک کنیم البته توجه به این نکته هم ضروری است که حذف نسخه ی جاری امکان پذیر نیست و برای حذف آن بایستی ابتدا به یک نسخه دیگر جابجا (Checkout) شویم.

نرم افزار git

تصویر 13

نرم افزار git

تصویر 14

این نخستین ویرایش این آموزش است لطفا اگر اشتباهی در آن مشاهده کردید جهت اصلاح آن به ما اطلاع دهید