CodeGym /وبلاگ جاوا /Random-FA /مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA
John Squirrels
مرحله
San Francisco

مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA

در گروه منتشر شد
با پایبندی به سنت جا افتاده، به شما به عنوان مهندسان ارشد نرم افزار آینده سلام می کنم. مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 1مقاله امروز توسعه منطقی مقاله من در Git است . در مقاله درباره Git نحوه کار با Git در خط فرمان را توضیح دادم. امروز به شما نشان خواهم داد که چگونه همه این کارها را در IntelliJ IDEA انجام دهید. در ابتدای سفرم به عنوان یک توسعه دهنده، از خط فرمان استفاده کردم و فکر کردم که برای این کار نیازی به رابط کاربری گرافیکی ندارم. بالاخره همه چیز واضح بود... اما این درست تا لحظه ای بود که من شروع به استفاده از 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

نگاهی دقیق تر به پروژه شبیه سازی شده بیندازید: در حال حاضر می توانید اطلاعات زیادی در مورد سیستم کنترل نسخه به دست آورید. ابتدا پنجره Version Control را در گوشه پایین سمت چپ داریم . در اینجا می توانید تمام تغییرات محلی را پیدا کنید و لیستی از 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 هایی که به صورت محلی ایجاد شده اند و هنوز در مخزن راه دور نیستند، فشار داده می شوند (git push).
  4. ALT+CTRL+Z - بازگشت مجدد در یک فایل خاص به وضعیت آخرین commit ایجاد شده در مخزن محلی تغییر می کند. اگر کل پروژه را در گوشه سمت چپ بالا انتخاب کنید، می توانید تغییرات را در همه فایل ها برگردانید.
مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 12

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

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

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

  3. عملکرد جدید را پیاده سازی کنید.

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

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

  5. تغییرات خود را به مخزن راه دور فشار دهید.
آنچه در ادامه می آید به وظایف و تخیل شما بستگی دارد.

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

من یک توضیح به README با یک commit جدید اضافه کردم و می خواهم این تغییرات را دریافت کنم. اگر تغییرات هم در مخزن محلی و هم در مخزن راه دور انجام شده باشد، از ما دعوت می‌شود که بین ادغام و rebase یکی را انتخاب کنیم. ما ادغام را انتخاب می کنیم. CTRL+T را وارد کنید : مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 13اکنون می توانید ببینید که README چگونه تغییر کرده است، یعنی تغییرات از مخزن راه دور کشیده شده است و در گوشه سمت راست پایین می توانید تمام جزئیات تغییراتی که از سرور ایجاد شده است را مشاهده کنید.مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 14

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

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

    مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 15
  2. چک باکس Checkout را انتخاب کرده و نام شعبه جدید را وارد کنید. برای من، readme- بهبود دهنده خواهد بود .

    مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 16

    سپس Git: master به Git: readme-improver تغییر خواهد کرد .

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

برای اینکه تداخل ظاهر شود، کسی باید آنها را ایجاد کند: D من README را با یک commit جدید از طریق مرورگر ویرایش می کنم، بنابراین کار موازی را شبیه سازی می کنم. انگار در همان فایل زمانی که من روی آن کار می کردم شخصی تغییراتی را ایجاد کرد. نتیجه یک درگیری خواهد بود. من کلمه "fullostью" را از خط 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کلمه "fullostью" حذف شد. شاید یک نفر از بازاریابی تصمیم گرفته باشد که نباید اینطور نوشته شود و به توسعه دهندگان وظیفه داده است که آن را به روز کنند. ما اکنون یک نسخه محلی از آخرین نسخه شعبه اصلی داریم. به readme-improver برگردید . اکنون باید تغییرات را از شاخه اصلی به ما تغییر دهیم. ما این کار را انجام می دهیم: مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 22اگر همه چیز را به درستی انجام دادید و با من همراهی کردید، نتیجه باید یک تضاد در فایل README نشان دهد: مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 23در اینجا نیز اطلاعات زیادی برای درک و جذب داریم. در اینجا لیستی از فایل ها (در مورد ما، یک فایل) که دارای تداخل هستند نشان داده شده است. ما می توانیم از بین سه گزینه انتخاب کنیم:
  1. شما را بپذیرید - فقط تغییرات readme-improver را بپذیرید.
  2. آنها را بپذیرید - فقط تغییرات را از استاد بپذیرید.
  3. ادغام - خودتان انتخاب کنید که چه چیزی را می خواهید نگه دارید و چه چیزی را دور بیندازید.
معلوم نیست چه چیزی تغییر کرده است. اگر تغییراتی در شاخه اصلی وجود دارد، باید در آنجا مورد نیاز باشد، بنابراین ما نمی توانیم تغییرات خود را به سادگی بپذیریم. بر این اساس، merge را انتخاب می کنیم : مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 24در اینجا می بینیم که سه بخش وجود دارد:
  1. اینها تغییراتی است که از readme-improver انجام شده است.
  2. نتیجه ادغام شده در حال حاضر، این همان چیزی است که قبل از تغییرات وجود داشت.
  3. تغییرات از شاخه اصلی.
ما باید یک نتیجه ادغام شده تولید کنیم که همه را راضی کند. با مرور آنچه قبل از تغییرات ما تغییر کرده است، متوجه می شویم که آنها به سادگی کلمه "fullostью" را حذف کردند. خیلی خب مشکلی نیست! این بدان معناست که ما نیز آن را در نتیجه ادغام شده حذف می کنیم و سپس تغییرات خود را اضافه می کنیم. هنگامی که نتیجه ادغام شده را تصحیح کردیم، می توانیم روی Apply کلیک کنیم . سپس یک اعلان ظاهر می شود که به ما می گوید که rebase موفقیت آمیز بوده است: مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 25وجود دارد! ما اولین تضاد خود را از طریق IntelliJ IDEA حل کردیم :D

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

مرحله بعدی فشار دادن تغییرات به سرور راه دور و ایجاد یک درخواست کشش است. برای انجام این کار کافی است CTRL+SHIFT+K را فشار دهید . سپس دریافت می کنیم: مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 26در سمت چپ، لیستی از commit هایی وجود دارد که به مخزن راه دور منتقل نشده اند. در سمت راست تمام فایل‌هایی که تغییر کرده‌اند نمایش داده می‌شوند. و بس! Push را فشار دهید و شادی را تجربه خواهید کرد :) اگر فشار موفقیت آمیز باشد، اعلانی مانند این را در گوشه پایین سمت راست خواهید دید:مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 27

بخش پاداش

در ابتدا، من نمی خواستم ایجاد یک درخواست کشش را به این مقاله اضافه کنم، اما بدون آن کاملاً کامل نیست. بنابراین، بیایید به یک مخزن GitHub برویم (البته یکی از مخزن های شما :)) و می بینیم که GitHub از قبل می داند ما چه می خواهیم: روی Compare & pull requestمسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 28 کلیک کنید . سپس روی ایجاد درخواست کشش کلیک کنید . از آنجا که ما تضادها را از قبل حل کرده ایم، اکنون هنگام ایجاد یک درخواست کشش، می توانیم بلافاصله آن را ادغام کنیم: و این تمام چیزی است که این بار می خواستم بگویم. البته من فقط در را کمی برای شما باز کردم و قسمت کوچکی را به شما نشان دادم. بقیه موارد را همانطور که نیاز دارید یاد خواهید گرفت. من عادت دارم از شما دعوت کنم که من را در GitHub دنبال کنید ، جایی که من پروژه هایم را با فناوری های مختلفی که در محل کار استفاده می کنم پست می کنم. اخیراً به یک دستاورد شخصی دست یافتم: بیش از صد توسعه‌دهنده به یکی از پروژه‌های من ستاره دادند. وقتی می دانید کاری که انجام داده اید توسط شخص دیگری مورد استفاده قرار می گیرد، احساس شادی باورنکردنی دارید. و از آن به خوبی استفاده کنید.مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 29

لینک های مفید

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