JavaRush /وبلاگ جاوا /Random-FA /بیایید Git را با Intellij IDEA متصل کنیم
Roman Beekeeper
مرحله

بیایید Git را با Intellij IDEA متصل کنیم

در گروه منتشر شد
طبق سنت، به شما مهندسان ارشد نرم افزار آینده خوش آمد می گویم. بیایید Git را با Intellij IDEA - 1 وصل کنیمامروز در مورد ادامه منطقی مقاله من در مورد Git صحبت خواهیم کرد . همچنین توصیه می‌کنم مطالبی را که قبلاً در مورد استراتژی‌های انشعاب منتشر کردم، بخوانید. در مقاله درباره Git نحوه کار با آن را در خط فرمان توضیح دادم و امروز به شما نشان خواهم داد که چگونه همه این کارها را در Intellij IDEA انجام دهید. در ابتدای سفرم به عنوان یک توسعه دهنده، از خط فرمان استفاده کردم و فکر کردم که نیازی به استفاده از UI برای این موضوع ندارم. از این گذشته، همه چیز واضح است و بنابراین... اما این دقیقاً تا لحظه ای بود که من شروع به استفاده از Git در Intellij IDEA کردم... می خواهم بلافاصله بگویم که تجربه شخصی خود را شرح خواهم داد. چندین گزینه برای حل مشکلات مشابه با استفاده از Intellij IDEA وجود دارد، و اگر می‌دانید که چگونه آنچه را که در مقاله توضیح داده‌ام بهتر انجام دهید، در نظرات بنویسید و بحث خواهیم کرد.

نکات مقدماتی ضروری:

  1. مقاله مربوط به git را بخوانید، تکرار کنید و درک کنید . این کمک می کند مطمئن شوید که همه چیز از قبل تنظیم شده و آماده کار است.
  2. Intellij IDEA را نصب کنید.
  3. یک ساعت وقت شخصی را برای جذب کامل در نظر بگیرید.
برای کار، بیایید پروژه آزمایشی را که برای مقاله git استفاده کردم، در نظر بگیریم. به روز رسانی:در زمان انتشار، رابط کاربری جدید Github از قبل در دسترس خواهد بود و برخی از نمادها در جایی که در مقاله نشان داده شده است، وجود نخواهد داشت. نگران نباشید: فقط باید به رابط کاربری جدید تغییر ندهید یا به دنبال آنها بگردید.

پروژه را به صورت محلی کلون کنید

در اینجا دو گزینه وجود دارد.
  1. اگر قبلاً یک حساب Github دارید و می خواهید چیزی را بعداً فشار دهید، بهتر است پروژه را برای خود فورک کنید و کپی خود را شبیه سازی کنید. چگونه یک چنگال درست کنیم - من در این مقاله در فصل نمونه ای از گردش کار فورکینگ توضیح دادم .
  2. از مخزن من کلون کنید و همه کارها را به صورت محلی انجام دهید بدون اینکه بتوانید همه چیز را روی سرور فشار دهید. پس از همه، این مخزن من خواهد بود))
برای کلون کردن یک پروژه از Github، باید پیوند پروژه را کپی کنید و آن را به IntelliJ IDEA منتقل کنید:
  1. آدرس پروژه را کپی کنید:

    بیایید Git را با Intellij IDEA - 2 وصل کنیم
  2. Intellij IDEA را باز کرده و Get from Version Control را انتخاب کنید:

    بیایید Git را با Intellij IDEA - 3 وصل کنیم
  3. آدرس را در پروژه کپی و پیست کنید:

    بیایید Git را با Intellij IDEA - 4 وصل کنیم
  4. از شما خواسته می شود که یک پروژه Intellij IDEA ایجاد کنید. ما پیشنهاد را می پذیریم:

    بیایید Git را با Intellij IDEA - 5 وصل کنیم
  5. از آنجایی که هیچ سیستم ساختی وجود ندارد و این موضوع موضوع مقاله نیست، ایجاد پروژه از منابع موجود را انتخاب کنید :

    بیایید Git را با Intellij IDEA - 6 وصل کنیم
  6. بعد یک نقاشی رنگ روغن مانند این وجود خواهد داشت: بیایید Git را با Intellij IDEA - 7 وصل کنیمما شبیه سازی را مرتب کردیم، اکنون می توانیم به اطراف نگاه کنیم.

ابتدا به Intellij IDEA به عنوان یک رابط کاربری Git نگاه کنید

یک نگاه دقیق دیگر به پروژه شبیه سازی شده بیندازید: در حال حاضر می توانید اطلاعات زیادی در مورد سیستم کنترل نسخه دریافت کنید. اولین مورد، پنل کنترل نسخه در گوشه پایین سمت چپ است. در آن می توانید تمام تغییرات محلی را پیدا کنید و لیستی از commit ها را دریافت کنید (مشابه git log). بیایید به سخنرانی Log برویم . یک جزء بصری خاص وجود دارد که به درک دقیق چگونگی روند توسعه کمک می کند. به عنوان مثال، می توانید ببینید که یک شاخه جدید با یک هدر commit اضافه شده به txt ایجاد شده است که سپس در شاخه اصلی ادغام شد. اگر روی یک commit کلیک کنید، در گوشه سمت راست می توانید تمام اطلاعات مربوط به commit را مشاهده کنید: همه تغییرات و ابرداده های آن. Подружим Git с Intellij IDEA - 8علاوه بر این، می توانید ببینید که چه تغییراتی ایجاد شده است. علاوه بر این، درگیری در آنجا حل شد. IDEA نیز این را به خوبی نشان می دهد. اگر بر روی فایلی که در طی این commit تغییر کرده است دوبار کلیک کنید، خواهیم دید که چگونه تضاد حل شد: Подружим Git с Intellij IDEA - 9قابل توجه است که در سمت راست و چپ دو نسخه از یک فایل وجود دارد که باید در یک نسخه ادغام شوند. و در وسط نتیجه نهایی است. هنگامی که یک پروژه دارای شعبات، تعهدات و کاربران زیادی است که در پروژه کار می کنند، باید به طور جداگانه بر اساس شاخه (شاخه)، کاربر (کاربر) و تاریخ (تاریخ) جستجو کنید: Подружим Git с Intellij IDEA - 10و آخرین چیزی که می خواهم قبل از شروع توضیح بدهم این است که چگونه بفهمیم. ما در کدام شعبه هستیم یه دقیقه بهت فرصت میدم سرچ کنی... پیداش کردی؟ آیا تسلیم می شوید؟ :D در گوشه سمت راست پایین یک دکمه Git: master وجود دارد که بعد از Git: نشان می دهد که پروژه در حال حاضر در کدام شاخه است. اگر روی دکمه کلیک کنید، می توانید کارهای مفید زیادی انجام دهید: به شعبه دیگری بروید، یک شعبه جدید ایجاد کنید، نام یک موجود را تغییر دهید و غیره. Подружим Git с Intellij IDEA - 11

کار با مخزن

کلیدهای میانبر مفید

برای ادامه کار، باید چند کلید میانبر بسیار مفید را به خاطر بسپارید:
  1. ctrl + t - آخرین تغییرات را از یک مخزن راه دور (git pull) دریافت کنید.
  2. ctrl + k - commit/مشاهده تمام تغییراتی که در حال حاضر در دسترس هستند. این شامل فایل های ردیابی نشده و اصلاح شده می شود (به مقاله من در مورد git مراجعه کنید، در آنجا توضیح داده شده است) (git commit).
  3. ctrl + shift + k دستوری برای فشار دادن تغییرات به یک مخزن راه دور است. تمام commit هایی که به صورت محلی ایجاد شده اند و هنوز روی ریموت نیستند، برای push (git push) ارائه می شوند.
  4. alt + ctrl + z - تغییرات یک فایل خاص را به وضعیت آخرین commit ایجاد شده در مخزن محلی برگردانید. اگر کل پروژه را در گوشه بالا سمت چپ انتخاب کنید، می توانید تغییرات را به همه فایل ها برگردانید.
Подружим Git с Intellij IDEA - 12

ما چه میخواهیم؟

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

  2. بر اساس این اصلی، یک جداگانه برای کار خود ایجاد کنید.

  3. اجرای عملکرد جدید

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

    به نظر می رسد، چرا این کار را انجام دهید؟ این یک قانون شکل خوب است که از بروز درگیری ها پس از فشار دادن شاخه شما به مخزن محلی جلوگیری می کند (البته احتمال وجود دارد که آنها همچنان وجود داشته باشند، اما بسیار کمتر می شود).

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

تغییرات را از یک سرور راه دور دریافت می کنید؟

من یک توضیحات به README با یک commit جدید اضافه کردم و می خواهم این تغییرات را دریافت کنم. اگر تغییراتی در مخازن محلی و از راه دور ایجاد شده باشد، انتخابی بین ادغام و rebase ارائه می شود. ادغام را انتخاب کنید. ctrl + t را وارد کنید : Подружим Git с Intellij IDEA - 13در نتیجه، می توانید ببینید که README چگونه تغییر کرده است. تغییرات مخزن از راه دور برداشته شده اند و در گوشه سمت راست پایین می توانید تمام جزئیات تغییراتی که از سرور ایجاد شده است را مشاهده کنید. Подружим Git с Intellij IDEA - 14

یک شاخه جدید بر اساس master ایجاد کنید

اینجا همه چیز ساده است.
  1. به گوشه پایین سمت راست بروید و روی Git: master کلیک کنید ، + New Branch را انتخاب کنید .

    Подружим Git с Intellij IDEA - 15
  2. چک باکس Checkout را رها کرده و نام شعبه جدید را بنویسید. برای من این می تواند readme- بهبود دهنده باشد .

    Подружим Git с Intellij IDEA - 16

    پس از این، Git: master به Git: readme-improver تغییر می کند .

شبیه سازی کار موازی

برای اینکه تداخل ظاهر شود، کسی باید آنها را ایجاد کند: D من README را با یک commit جدید از طریق مرورگر ویرایش می کنم و بنابراین کار موازی را شبیه سازی می کنم. می گویند شخصی در حین کار من تغییراتی در فایل مشابه من ایجاد کرده که منجر به درگیری می شود. من کلمه "کاملا" را از خط 10 حذف می کنم.

عملکرد خود را پیاده سازی کنید

وظیفه تغییر README و اضافه کردن توضیحات به مقاله جدید است، یعنی کار در git از طریق Intellij IDEA انجام می شود. این را اضافه کنید: Подружим Git с Intellij IDEA - 17تغییرات کامل شده اند، اکنون می توانید یک commit ایجاد کنید. کلید میانبر ctrl + k را فشار دهید ، دریافت می کنیم: Подружим Git с Intellij IDEA - 18قبل از ایجاد یک commit، باید به دقت به آنچه در این پنجره ارائه می شود نگاه کنید. من به طور خاص یک فلش اضافه کردم تا به شما نشان دهم کجا را نگاه کنید. در آنجا چیزهای جالب زیادی وجود دارد. در قسمت Commit Message متن commit را می نویسیم و برای ایجاد آن باید روی دکمه Commit کلیک کنید . من هنوز نحوه انجام این کار را با کلید فوری پیدا نکرده ام، بنابراین اگر کسی آن را پیدا کرد، بنویسد، بسیار خوشحال خواهم شد. می نویسیم که README تغییر کرده و یک commit ایجاد می کنیم. در نتیجه، یک هشدار در گوشه پایین سمت چپ با نام commit ظاهر می شود: Подружим Git с Intellij IDEA - 19

بررسی کنید که آیا شاخه اصلی تغییر کرده است

ما کار را کامل کردیم، کار می کند، تست ها را نوشتیم، همه چیز خوب است. اما قبل از فشار دادن به سرور، باید بررسی کنید که آیا در این مدت تغییراتی در شاخه اصلی ایجاد شده است یا خیر. چگونه ممکن است این اتفاق بیفتد؟ خیلی ساده است: بعد از شما به شخصی وظیفه داده شد و این شخص سریعتر از شما این کار را انجام داد. بنابراین به شعبه اصلی می رویم. برای انجام این کار، باید در گوشه سمت راست پایین آنچه در شکل زیر نشان داده شده است انجام دهید: Подружим Git с Intellij IDEA - 20در شاخه اصلی، کلیدهای ctrl + t را فشار دهید تا آخرین تغییرات آن را از سرور راه دور دریافت کنید. اگر به تغییرات نگاه کنید، به راحتی می توانید متوجه آنچه اتفاق افتاده است: Подружим Git с Intellij IDEA - 21همانطور که می بینید، کلمه "به طور کامل" حذف شد. شاید این شخصی از بازاریابی بود که به این نتیجه رسید که نمی توان آن را به این شکل نوشت و به توسعه دهندگان وظیفه به روز رسانی آن را داد. ما اکنون آخرین نسخه اصلی شعبه را به صورت محلی داریم. بیایید به readme-improver برگردیم . اکنون باید تغییرات را از شاخه اصلی به ما تغییر دهیم. ما انجام می دهیم: Подружим Git с Intellij IDEA - 22اگر همه چیز را به درستی با من دنبال کردید، نتیجه باید یک تضاد در فایل README باشد: Подружим Git с Intellij IDEA - 23همچنین اطلاعات زیادی در اینجا وجود دارد که باید درک و جذب شوند. این یک لیست (در مورد یک عنصر ما) از فایل‌هایی را نشان می‌دهد که تداخل دارند. ما می توانیم سه گزینه را انتخاب کنیم:
  1. شما را بپذیرید - فقط تغییرات readme-improver را بپذیرید.
  2. آنها را بپذیرید - فقط تغییرات را از استاد بپذیرید.
  3. ادغام - خودتان انتخاب کنید چه چیزی را نگه دارید و چه چیزی را حذف کنید.
مشخص نیست که چه چیزی در آنجا تغییر کرده است، و اگر تغییرات در Master باشد، در آنجا به آنها نیاز است، و ما نمی‌توانیم تغییرات خود را بپذیریم، بنابراین ادغام را انتخاب می‌کنیم : Подружим Git с Intellij IDEA - 24در اینجا می‌توانید ببینید که سه بخش وجود دارد:
  1. اینها تغییراتی از readme-improver هستند.
  2. نتیجه. فعلاً مانند قبل از تغییرات است.
  3. تغییرات از شاخه اصلی.
باید نتیجه را طوری جمع کنیم که همه را راضی کند. بنابراین، ما آنچه را که آنها قبل از ما انجام دادند، مطالعه کردیم و متوجه شدیم که آنها به سادگی کلمه "به طور کامل" را حذف کردند. خوب باشه مشکلی نیست این بدان معنی است که در نتیجه آن را حذف کرده و تغییرات خود را اضافه می کنیم. به محض تصحیح نتیجه، می‌توانید روی اعمال کلیک کنید . پس از این، یک اعلان ظاهر می شود مبنی بر موفقیت آمیز بودن Rebase: Подружим Git с Intellij IDEA - 25به این ترتیب اولین تضاد خود را با استفاده از Intellij IDEA حل کردیم:D

تغییرات را به یک سرور راه دور فشار دهید

مرحله بعدی فشار دادن تغییرات به سرور راه دور و ایجاد یک درخواست کشش است. برای انجام این کار، کافیست کلیدهای ctrl + shift + k را فشار دهید ، پس از آن می‌گیریم: Подружим Git с Intellij IDEA - 26در سمت چپ لیستی از commit‌هایی وجود دارد که به مخزن راه دور منتقل نشده‌اند و در سمت راست همه فایل‌هایی وجود دارد که قبلاً انجام شده‌اند. تغییر کرد. تمام: روی Push کلیک کنید ، و خوشحال خواهید شد :) اگر فشار موفقیت آمیز بود، یک اعلان مانند این در گوشه پایین سمت راست وجود دارد: Подружим Git с Intellij IDEA - 27

بخش پاداش

من در ابتدا نمی خواستم ایجاد یک درخواست کشش را به مقاله اضافه کنم، اما به نظر می رسد به این دلیل خیلی کامل نیست. بنابراین، ما به مخزن GitHub می رویم (البته اگر مال شما باشد)))) و می بینیم که GitHub قبلاً می داند چه چیزی را به ما ارائه دهد: Подружим Git с Intellij IDEA - 28روی Compare & pull request کلیک کنید و سپس روی Create pull request کلیک کنید . با توجه به این واقعیت که ما تضادها را از قبل حل کرده ایم، اکنون هنگام ایجاد یک درخواست کشش، می توانید بلافاصله آن را ادغام کنید: Подружим Git с Intellij IDEA - 29این تمام چیزی است که این بار می خواستم به شما بگویم. البته من فقط در را باز کردم و قسمت کوچکی را به شما نشان دادم. بقیه را خودتان در صورت نیاز پیدا خواهید کرد. طبق معمول، از شما دعوت می‌کنم در حساب GitHub من مشترک شوید ، جایی که پروژه‌هایی را بر اساس فناوری‌های مختلفی که در محل کار استفاده می‌کنم پست می‌کنم. من اخیراً یک دستاورد شخصی داشتم - پروژه من قبلاً توسط بیش از صد توسعه دهنده رتبه بندی شده است. این یک احساس لذت باورنکردنی است که کسی از آنچه شما ساخته اید استفاده کند. و از آن به خوبی استفاده می کند.

لینک های مفید

  1. JavaRush: شروع به کار با Git: راهنمای دقیق برای مبتدیان
  2. GitHub: پروژه آزمایشی برای کار با
  3. JavaRush: تجزیه و تحلیل استراتژی های انشعاب در Git
  4. JetBrains: یک مخزن Git راه اندازی کنید
  5. Habr : Git rebase
  6. GitHub: حساب من
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION