کار با Git در Android Studio بدون نیاز خط فرمان در 12 گام

کار با Git در Android Studio بدون نیاز خط فرمان در 12 گام
در این پست می‌خوانید:

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

 نکته : 
کلمه های نارنجی توضیح های کوتاه دارند 

نمایش دستورات Git در Android Studio و آموزش گیتهاب

📦 GitHub چطور پروژه‌ها را ذخیره می‌کند؟

در واقع، گیت‌هاب مثل یک ظرف هوشمند است که پروژه شما را در خود نگه می‌دارد. اما این فقط یک پوشه ساده نیست!
GitHub علاوه بر نگهداری فایل‌ها، تاریخچه‌ی کامل تغییرات پروژه را هم ذخیره می‌کند.
این یعنی هر تغییری که در پروژه ایجاد شود، در یک نسخه جداگانه ثبت می‌شود و شما در هر زمان می‌توانید به نسخه‌های قبلی برگردید.

حالا بریم سراغ بخش عملی و همه چیز رو با یه مثال واقعی پیش ببریم

مثال عملی: کار با Git در Android Studio

ابتدا من یه پروژه ساده میسازم ، بعد قدم به قدم اون رو به گیتهاب میفرستیم و در اخر اون رو دریافت میکنیم و همچنین چند تا از دستور های گیت رو امتحان میکنیم:

ابتدا در اندروید یه پروژه ساده تحت عنوان Learn Git  می سازیم « من به صورت کامپوز ساختم »

تصویری از ساخت پروژه ساده در اندروید استودیو کامپوز

در این مرحله ما نیاز داریم که یک مخزن Repository در گیت درست کنیم که بتونیم پروژه رو داخل اون بزاریم . در سه تصویر زیر این مراحل نشان داده شده اند : 

شروع ساخت پروژه در گیتهاب

شروع ساخت پروژه در گیتهاب

انتخاب نام و تنظیمات ساخت مخزن در گیتهاب

انتخاب نام و تنظیمات ساخت مخزن در گیتهاب

🔴 کادر قرمز :

در این جا شما آدرس Email یا Gmail خودتون رو مشاهده میکنید

🟢 کادر سبز 

انتخاب نام برای repository

نمایش مخزن repository ساخته شده در گیتهاب

نمایش مخزن repository ساخته شده در گیتهاب

 این URL که در این جا مشخص کردیم ،  در گام 6 نیاز خواهیم داشت .

برای اینکه بتونید به گیتهاب اتصال داشته باشید و همچنین برای احراز هویت، باید از توکن (Personal Access Token) استفاده کنید.
برای دریافت آن:

  1. وارد حساب کاربری خود در GitHub شوید.
  2. به قسمت  Settings > Developer settings > Personal access tokens > Tokens(classic) بروید
نمایش تنظیمات ساخت توکن جدید در گیت هاب

نمایش تنظیمات ساخت توکن جدید در گیت هاب

کادر قرمز :

انتخاب نام توکن

کادر سبز:

انتخاب مدت زمان انقضای توکن ، حتی می تونید بدون تاریخ انتضا این رو ثبت کنید .

کادر زرد:

در این جا شما میتونید تنظیمات این توکن که ، دسترسی ها است رو انجام بدین ، مانند :

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

کادر آبی:

در آخر دکمه Generate token  روبزنید تا توکن ساخته بشه

بعد از زدن دکمه تصویر زیر رو می بینید ، که در جای علامت زده شما باید اون رو کپی کنید و نگه دارید که در مراحل بعدی نیاز خواهیم داشت . « یه وقت این رو کپی نکنی این برای تو کار نمیکنه 😂»

نمایش توکن جدید تولید شده

نمایش توکن جدید تولید شده

در این مرحله باید این پروژه رو به گیت داخلی اضافه کنید

در تصویر زیر با زدن دکمه (کادر قرمز ) یه پنجره باز میشود که قسمت علامت زده شده را کلیک کنید .

نمایش دکمه برای اضافه کردن به گیت داخلی

نمایش دکمه برای اضافه کردن به گیت داخلی

بعد از کلیک کردن ، به تصویر زیر میرسید : انتخاب محل این مخزن داخلی ، پیشنهاد میکنم در داخل همین پروژه این مخزن داخلی را بسازید 

انتخاب محل برای افزودن مخزن داخلی

و سرانجام با انتخاب Ok با تصویر رو میبیند : که نشون دهنده ساخته شدن این مخزن است .

ساخته شدن مخزن داخلی و نمایش اطلاعات آن

ساخته شدن مخزن داخلی و نمایش اطلاعات آن

Commit توی Git یعنی ثبت تغییراتی که روی پروژه‌ات انجام دادی.

«مثلاً فرض کن داری روی یه پروژه کار می‌کنی، یه فایل اضافه کردی یا توی یه کد تغییر دادی. حالا می‌خوای این تغییرات رو ذخیره کنی به‌طوری که بعداً هم معلوم باشه “کی”، “چی” رو تغییر داده. اینجاست که می‌گیم باید کامیت بزنی.»

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

مرحله کامیت کردن

مرحله کامیت کردن

کادر سبز:

لیست تغییراتی که میخواهید ثبت کنید . 

کادر نارنجی- گزینه Amend

اگر می‌خواهید پیام Commit را تغییر دهید یا فایل جدیدی به آن اضافه کنید، از این گزینه استفاده کنید.

در این حالت، به ‌جای ایجاد یک Commit جدید،  Commit قبلی ویرایش می‌شود.

پس از انتخاب تغییرات مورد نظر، روی دکمه  Commit کلیک کنید.
اگر گزینه Amend را فعال کرده باشید، دکمه‌ای به نام  Amend Commit and Push به جای Commit نمایش داده می شود .

کادر زرد:

پیامی که میخواهید در این ثبت کردن بنویسید که در آینده آن را به خاطر داشته باشید . هدف از این “اضافه کردن” یا “تغییردادن ” چی بوده 

کادر صورتی:

دکمه کامیت کردن که این تغییرات رو ثبت میکنه

کادر آبی :

همزمان کامیت و پوش push میکند

Push یعنی فرستادن تغییرات از کامپیوتر خودت به اینترنت، جایی که پروژه‌ت رو نگه می‌داری (مثل GitHub).

سرانجام ، بعد از کامیت کردن که من پیام این کایمت رو Add انتخاب کردم اگر در گام 4 معرفی شد  این قسمت را بازکنید میبیند که این کامیت اضافه شد است و اطلاعات مخزن داخلی ، شاخه داخلی ، خود کامیت در این جا مشاهده میکنید 
نمایش نتیجه کامیت

 

 

پس از Commit، میخوایم به سمت مخزن گیتهاب ، این داده ها رو بفرستیم 

مانند تصویر زیر push رو انتخاب کنید :
نمایش دکمه push برای پوش کردن

بعد از زدن روی push به این جا هدایت می شوید:
نمایش تعریف ریموت برای گیتهاب

در این مرحله نیاز دارید تا ریموت در این مرحله نیاز دارید تا ریموت Remote  کنیم حالا URL مخزن گیت‌هاب خود را که در گام 2 درست کردید رو وارد کنید بعد از این اطلاعات ریموت ،شاخه ، داده های که میخواهیم بفرستیم نمایان میشود ، حالا روی دکمه push Anyway کلیک کنید 

نمایش اطلاعات بعد از ساخت ریموت و اغاز پوش کردن

 اگر قبلاً به GitHub متصل نشده باشید، یک پیغام نمایش داده می‌شود مبنی بر اینکه باید احراز هویت انجام دهید. که ما از use Token استفاده میکنیم 

اعلان احراز هویت

توکنی که در گام 3 دریافت کردید را در کادر مربوطه وارد نمایید.

وارد کردن توکن برای احراز هویت

بعد از وارد کردن توکن ، پوش کردن آغاز میشود و در صورت موفقیت آمیز بودن این پیام رو مشاهده میکنید

موفقیت امیز بودن پوش کردن پروژه

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

Pull

در واقع ترکیبی از دو عمل هست:

git fetch + git merge

یعنی:

  1. میره آخرین تغییرات از مخزن ریموت (مثلاً GitHub) رو دریافت می‌کنه (fetch).
  2. بعد این تغییرات رو با نسخه فعلی که روی سیستم تو هست ترکیب می‌کنه (merge).

🧠 داخل Android Studio به چه درد می‌خوره؟

وقتی تو داری روی یه پروژه با Git کار می‌کنی، و به‌خصوص:

  • با تیم کار می‌کنی (دیگران هم روی همین پروژه تغییراتی انجام میدن)، یا
  • تو از چند سیستم مختلف روی یک پروژه کار می‌کنی (مثلاً خونه و محل کار)،

به صورت جدولی بنویسم : 

موقعیت

کاربرد pull

یکی دیگه روی GitHub یک تابع جدید اضافه کرده

با Pull کردن، اون تابع به پروژه‌ی تو اضافه می‌شه

تو قبلاً یه Commit دادی، ولی تو GitHub یه تغییر جدیدتر هست

Pull باعث میشه تو همون تغییر رو دریافت کنی

تو از لپ‌تاپ دیگه‌ای push کردی و الان با سیستم دیگه کار می‌کنی

با Pull، اون تغییرات روی این سیستم هم میاد

Revert یعنی “برگردوندن” تغییراتِ یه commit، ولی با یه commit جدید.

یعنی چی؟ فرض کن یه کاری کردی که اشتباه بوده، ولی نمی‌خوای تاریخچه پروژه پاک بشه. تو این حالت:

  • با git revert، اون commit رو برعکس می‌کنی
  • ولی اون تغییرات توی یه commit جدید ذخیره می‌شن!
  • تاریخچه کاملاً حفظ می‌شه

🔹 مناسب برای زمانی که:

  • با تیم کار می‌کنی و نمی‌خوای چیزی رو حذف کنی
  • نمی‌خوای force push بزنی
  • می‌خوای همه بدونن چی برگشت داده شده

Reset یعنی “پاک کردن” کامیت‌ها، و برگردوندن پروژه به یه نقطه‌ی قبلی.

  • با reset می‌تونی کاملاً پروژه رو ببری عقب، مثلاً به ۲ کامیت قبل
  • بسته به حالتش (–soft, –mixed, –hard) می‌تونه فایل‌ها رو هم پاک کنه یا نه
  • اگه –hard بزنی، هم commit پاک میشه، هم فایل‌ها برمی‌گردن به اون حالت

🔹 مناسب برای زمانی که:

  • اشتباه کردی و می‌خوای برگردی عقب
  • پروژه فقط دست خودته و تاریخچه رو نمی‌خوای نگه داری
  • می‌خوای force push انجام بدی و تیمی در کار نیست

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

نمایش گزینه rest به صورت گرافیکی در اندروید استودیو

بعد از انتخاب گزینه rest به این چهار تا گزینه بر میخوریم : 

نمایش 4 گزینه rest ، دستور مربوط به گیت در اندروید استودیو

🔹 Soft

  • فقطHEAD(نشانگر آخرین commit) رو می‌بره عقب.
  • فایل‌ها و تغییرات باقی می‌مونن، ولی به حالت staged (آماده‌ی commit) میان.

  • انگار گفتی: “من هنوز این تغییرات رو می‌خوام، ولی می‌خوام دوباره commit کنم.”

🔹 Mixed (پیش‌فرض)

  • HEAD رو می‌بره عقب.
  • فایل‌ها تغییر نمی‌کنن، ولی تغییرات از حالت staged (آماده commit) درمی‌آن.
  • تو باید دستی انتخاب کنی چی رو commit کنی.

🟡 ساده بگیم: انگار گفتی “من می‌خوام به اون commit برگردم، ولی فایل‌ها بمونن تو پروژه. فقط Git نفهمه که اینا آماده‌ی commit هستن.”

🔹 Hard

  • HEAD می‌ره عقب.
  • فایل‌ها برمی‌گردن به همون حالت commit قدیمی.
  • همه چیز پاک می‌شه (تغییرات local هم می‌پرن)

🟥 خطرناک‌ترین گزینه‌ست چون اگه فایل ذخیره نشده باشه، دیگه بر نمی‌گرده.

🔹 Keep (ویژه‌تر)

  • مثل Hard کار می‌کنه، ولی تغییرات local که تو فایل‌هات داری رو نگه می‌داره.
  • کمی نادرتر استفاده می‌شه، بیشتر برای موقعی که reset بخوای اما تغییرات local تو بمونه.

این دستور:

  • سورس‌کد، تاریخچه commitها، branchها و… همه چیز رو از یک مخزن (مثلاً GitHub) می‌گیره.
  • یک فولدر جدید درست می‌کنه که اسمش معمولاً همون اسم پروژه‌ست.

 چه چیزی دریافت می‌کنی؟

  • همه‌ی فایل‌ها (کد، اسناد و غیره)
  • تاریخچه کامل commitها
  • پوشه .git که حاوی اطلاعات گیت هست

 اطلاعات جدیدی که توی مخزن اصلی (GitHub) هست رو بگیر، ولی فایل‌های پروژه رو تغییر نده.

 چه زمانی استفاده می‌شه؟

مثلاً اگه چند روز روی پروژه کار نکردی و می‌خوای ببینی آیا چیزی در مخزن اصلی عوض شده یا نه:

بعد از fetch، می‌تونی ببینی:

  • چه branchهایی جدید شدن
  • چه commitهایی اضافه شدن

ولی فایل‌های پروژه‌ی تو هنوز تغییر نکرده‌ن.

نکات پایانی و جمع بندی :

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

جدول اول: دستورات اصلی Git و توضیح کاربرد آن‌ها

دستور Git توضیح یک‌خطی کاربرد
git init شروع یک پروژه‌ی جدید با Git در یک پوشه‌ی محلی
git clone گرفتن نسخه کامل پروژه از مخزن اینترنتی
git status نمایش وضعیت فایل‌ها (تغییر کرده، اضافه شده یا آماده commit نیست)
git add اضافه کردن فایل‌ها به Stage برای commit
git commit ذخیره تغییرات به صورت نسخه در مخزن محلی
git push ارسال commitها به مخزن اینترنتی (مثلاً GitHub)
git pull گرفتن تغییرات از مخزن اینترنتی + ادغام آن‌ها با پروژه‌ی محلی
git fetch فقط گرفتن اطلاعات به‌روزرسانی شده از مخزن اینترنتی بدون تغییر در پروژه
git reset برگرداندن HEAD به یک commit قبلی (انواع مختلف: soft, mixed, hard)
git revert ساختن یک commit جدید برای خنثی کردن اثر یک commit قبلی
git log نمایش لیست commitها و تاریخچه تغییرات
git diff مقایسه تفاوت بین فایل‌ها یا commitها

جدول دوم: دستوراتی که بیشتر در مواقع خاص یا رفع اشتباه استفاده می‌شن

دستور توضیح
git reset --soft فقط HEAD به عقب برمی‌گرده، فایل‌ها دست‌نخورده می‌مونن و در Stage هستن
git reset --mixed HEAD برمی‌گرده عقب، Stage پاک می‌شه، ولی فایل‌ها تغییر نمی‌کنن
git reset --hard کل تغییرات حذف می‌شن، پروژه به حالت یک commit خاص برمی‌گرده
git revert یک commit جدید می‌سازه که تغییرات commit هدف رو خنثی می‌کنه (ایمن برای Push)
git checkout رفتن به یک branch یا commit خاص
git branch لیست‌گیری یا ساختن branch جدید
git merge ادغام تغییرات یک branch دیگر با branch فعلی
git stash نگهداری موقت تغییرات محلی بدون commit کردن

جدول سوم: نکات مهم و تفاوت‌ها در Git

موضوع تفاوت / نکته
clone vs fetch Clone پروژه رو از صفر میاره، Fetch فقط اطلاعات جدید رو می‌گیره بدون تغییر فایل‌ها
pull vs fetch Pull یعنی fetch + merge → فایل‌ها هم تغییر می‌کنن، اما fetch فقط دریافت اطلاعاته
reset vs revert Reset تاریخچه رو عوض می‌کنه، ولی revert یک commit جدید برای برگشت می‌سازه (ایمن‌تر برای push)
soft vs hard in reset Soft فقط HEAD رو می‌بره عقب، Hard فایل‌ها و Stage رو هم به عقب برمی‌گردونه
تغییرات روی GitHub نمی‌رن هر تغییری بعد از commit باید push بشه تا به GitHub بره
تغییر نام commit فقط با دستور git rebase -i یا تغییر تاریخچه ممکنه (و خطرناک برای مخزن مشترک)

پایان 
امیدوارم این آموزش براتون مفید واقع بشه 🥰

دیدگاه‌ها ۰
ارسال دیدگاه جدید