آموزش Git برای توسعه دهندگان اندروید (بخش دوم)

در بخش قبلی این راهنما در مورد برخی مفاهیم مقدماتی مورد نیاز Git برای توسعه‌دهندگان اندروید از جمله مفهوم «سیستم کنترل نسخه» صحبت کردیم. در این بخش، مستقیماً به فهرستی از عملیات Git که امکان یکپارچه‌سازی Git و افزودن آن به پروژه‌های اندروید را فراهم می‌سازد خواهیم پرداخت. زمانی که VCS فعال شود، می‌توان گزینه Git را در پنجره VCS مانند زیر مشاهده کرد. در ادامه به آموزش Git پرداخته گزینه‌های موجود در بخش Git را بررسی می‌کنیم.

بخش سبز: عملیات فایل و بخش قرمز: عملیات ریپازیتوری
بخش سبز: عملیات فایل و بخش قرمز: عملیات ریپازیتوری

همان طور که در تصویر فوق مشاهده می‌کنید، گزینه‌ها را می‌توان به صورت زیر از هم تمیز داد:

  1. عملیات فایل (کادر سبز رنگ)
  2. عملیات ریپازیتوری (کادر قرمز)


عملیات فایل

  • ـ Commit File – برای کامیت کردن فایل انتخابی استفاده می‌شود.
  • ـ Add با میانبر (Ctrl+Alt+A) – برای افزودن فایل انتخابی به Git.
  • ـ Annotate – برای نمایش آخرین اطلاعات اصلاح شده برای هر خط از یک فایل انتخابی.
  • ـ Show Current Revision – برای نمایش عدد بازبینی جاری (آخرین کامیت).
  • ـ Compare with same repository version – برای مقایسه تغییرات محلی فایل انتخابی با آخرین بازبینی‌های کامیت شده.
  • ـ …Compare with – مقایسه تغییرات محلی فایل انتخابی با بازبینی انتخابی.
  • ـ …Compare with Branch – مقایسه فایل انتخابی با دیگر شاخه‌های موجود در ریپازیتوری.
  • ـ Show History – نمایش سابقه فایل انتخابی.
  • ـ Show History for Selection – نمایش سابقه خطوط انتخابی در یک فایل.
  • ـ Revert با میانبر (Ctrl+Alt+Z) – بازگردانی تغییرات محلی ایجاد شده در فایل انتخابی.
  • ـ …Resolve Conflicts – حل تعارض‌های موجود در هنگام ادغام تغییرات.

عملیات ریپازیتوری

  • ـ Branches – برای نمایش فهرستی از شاخه‌های موجود.
  • ـ Tag – برای ایجاد یک تگ یا شناسه منحصر به فرد برای کامیت.
دقت کنید که Git از یک کلید SHA به عنوان شناسه یکتا برای هر کامیت استفاده می‌کند؛ اما دلیل استفاده از تگ آن است که می‌توانید یک عبارت معنی‌دار را به همراه توضیح مناسب ایجاد کنید. بدین ترتیب می‌توان جزییات انتشار یا هر اطلاعات دیگری را در این توضیح جای داد، به طوری که شناسایی آن آسان‌تر باشد. ضمناً می‌توان کامیت‌ها را با استفاده از نام تگ از پنجره version control جستجو کرد.

  • ـ Merge Changes – برای ادغام شاخه انتخابی در شاخه جاری.
  • ـ Stash Changes – برای ذخیره‌سازی تغییرات محلی در یک فایل جداگانه.
  • تصور کنید مشغول کار روی یک ماژول هستید و کدهای زیادی برای افزودن یک «ویژگی» (فیچر) نوشته‌اید که هنوز کامیت نشده است. اینک می‌خواهید بدون تغییرات جاری یک build داشته باشید، در این صورت می‌توانید به سادگی تغییرات صورت گرفته را stash کنید و یک build بگیرید. پس از آن می‌توانید پروژه را unstash کرده و به کار خود ادامه دهید.
  • ـ Un Stash Changes – برای بازیابی تغییرات محلی از فایل stash به فضای کاری.
تغییراتی که stash شده‌اند، به صورت تغییرات محلی وارد فضای کاری می‌شوند. در این حالت می‌توانید کار خود را از همان جایی که مانده بود، ادامه دهید.
  • ـ Reset Head – برای ریست کردن بازبینی انتخابی. سه نوع ریست وجود دارند که بر اساس نیاز خود می‌توانیم از آن‌ها استفاده کنیم:
    • ـ Soft – در این نوع ریست، تغییرات اندیس و «درختِ کاری» (working tree) همانند Head خواهند بود.
    • ـ Mixed – اندیس به صورت نسخه انتخابی ریست می‌شود؛ اما تغییرات درخت کاری همانند Head می‌ماند.
    • ـ Hard – تغییرات اندیس و درخت کاری برابر با بازبینی انتخابی ریست می‌شوند.
  • ـ Remotes – نمایش فهرستی از URL-های ریموت برای Git.
  • ـ Clone – برای کلون/ بررسی ریپازیتوری از URL ریپازیتوری مفروض.
  • ـ Fetch – واکشی به‌روزرسانی‌ها از ریپازیتوری ریموت.
  • ـ Pull – عمل واکشی کردن و ادغام شاخه انتخابی در یک مرحله.
  • ـ Push با میانبر (Ctrl+Shift+K) – برای پوش کردن تغییرات کامیت شده به سرور استفاده می‌شود.
  • ـ Rebase – در این حالت مانند merge، تغییرات یک شاخه در شاخه دیگر ادغام می‌شود؛ اما روش انجام این کار متفاوت است. Rebase کردن موجب می‌شود که یک شاخه به عنوان کامیت جدیدی به شاخه دیگر اضافه شود.

مزایا و معایب Reabse

مزیت Rebase این است که سابقه کار به صورت خطی می‌ماند؛ اما عیب آن این است که امکان ردگیری تغییرات را از دست می‌دهیم. Rebase کردن موجب می‌شود که از طریق ادغام کامیت، چارچوب و زمینه کار از دست برود. امیدواریم با مطالعه این بخش از راهنما با گزینه‌های موجود در IDE اندروید استودیو آشنا شده باشید. در بخش بعدی از این سری مطالب آموزش Git فهرستی از عملیاتی که می‌توان در پنجره کنترل نسخه انجام داد را بررسی می‌کنیم.


https://virgool.io/@omiddeadlive/آموزش-git-برای-توسعه-دهندگان-اندروید-بخش-سوم-bnbpspflmlqx
https://medium.com/ivymobility-developers/git-for-android-developers-part-2-list-of-operations-c0a656c8e6be