![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 1](https://cdn.codegym.cc/images/article/984d09f2-954b-4477-8439-de0b53537e6a/800.jpeg)
ورودی های مورد نیاز:
- مقاله من در مورد Git را بخوانید، دنبال کنید و درک کنید . این کمک می کند تا اطمینان حاصل شود که همه چیز آماده و آماده است.
- IntelliJ IDEA را نصب کنید.
- برای دستیابی به تسلط کامل، یک ساعت وقت شخصی اختصاص دهید.
پروژه را به صورت محلی کلون کنید
در اینجا دو گزینه وجود دارد:- اگر قبلاً یک حساب GitHub دارید و می خواهید چیزی را بعداً فشار دهید، بهتر است پروژه را فورک کنید و نسخه خود را شبیه سازی کنید.
- مخزن من را کلون کنید و همه کارها را به صورت محلی انجام دهید بدون اینکه بتوانید همه چیز را به سرور منتقل کنید. بالاخره این مخزن من است :)
-
آدرس پروژه را کپی کنید:
-
IntelliJ IDEA را باز کرده و "Get from Version Control" را انتخاب کنید:
-
آدرس پروژه را کپی و پیست کنید:
-
از شما خواسته می شود که یک پروژه IntelliJ IDEA ایجاد کنید. قبول پیشنهاد:
-
از آنجایی که هیچ سیستم ساختی وجود ندارد و این خارج از محدوده این مقاله است، ایجاد پروژه را از منابع موجود انتخاب می کنیم :
-
در ادامه این صفحه زیبا را خواهید دید:
اکنون که شبیه سازی را کشف کردیم، می توانید نگاهی به اطراف بیندازید.
نگاه اول به IntelliJ IDEA به عنوان یک رابط کاربری Git
نگاهی دقیق تر به پروژه شبیه سازی شده بیندازید: در حال حاضر می توانید اطلاعات زیادی در مورد سیستم کنترل نسخه به دست آورید. ابتدا پنجره Version Control را در گوشه پایین سمت چپ داریم . در اینجا می توانید تمام تغییرات محلی را پیدا کنید و لیستی از commit ها را دریافت کنید (مشابه با "git log"). بیایید به بحث در مورد Log برویم . تجسم خاصی وجود دارد که به ما کمک می کند تا بفهمیم توسعه دقیقا چگونه پیش رفته است. به عنوان مثال، می توانید ببینید که یک شاخه جدید با یک هدر اضافه شده به commit txt ایجاد شد که سپس در شاخه اصلی ادغام شد. اگر روی یک commit کلیک کنید، می توانید در گوشه سمت راست تمام اطلاعات مربوط به commit را مشاهده کنید: تمام تغییرات و ابرداده های آن.![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 8](https://cdn.codegym.cc/images/article/b386ff85-a7a7-4ba5-937e-081af1b03a07/1024.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 9](https://cdn.codegym.cc/images/article/d7553c32-3ebe-4ae4-bbe8-cb7e4010bfd2/1024.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 10](https://cdn.codegym.cc/images/article/5b7c43da-f06d-4c72-99fa-7569654fec3e/1024.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 11](https://cdn.codegym.cc/images/article/5d9bd7d3-d162-430e-acbe-d0702c8c241f/1024.jpeg)
کار با یک مخزن
کلیدهای میانبر مفید
برای کارهای آینده، باید چند کلید میانبر بسیار مفید را به خاطر بسپارید:- CTRL+T - آخرین تغییرات را از مخزن راه دور (git pull) دریافت کنید.
- CTRL+K - یک commit ایجاد کنید / تمام تغییرات فعلی را مشاهده کنید. این شامل فایل های ردیابی نشده و اصلاح شده می شود (به مقاله من در مورد git مراجعه کنید، که این را توضیح می دهد) (git commit).
- CTRL + SHIFT + K - این دستور برای فشار دادن تغییرات به مخزن راه دور است. تمام commit هایی که به صورت محلی ایجاد شده اند و هنوز در مخزن راه دور نیستند، فشار داده می شوند (git push).
- ALT+CTRL+Z - بازگشت مجدد در یک فایل خاص به وضعیت آخرین commit ایجاد شده در مخزن محلی تغییر می کند. اگر کل پروژه را در گوشه سمت چپ بالا انتخاب کنید، می توانید تغییرات را در همه فایل ها برگردانید.
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 12](https://cdn.codegym.cc/images/article/a80e6367-7319-4cd3-8cbd-2e4237c77ed5/512.jpeg)
ما چه میخواهیم؟
برای انجام کار، باید بر یک سناریوی اساسی که در همه جا استفاده می شود، تسلط داشته باشیم. هدف این است که عملکرد جدید را در یک شاخه جداگانه پیاده سازی کنید و سپس آن را به یک مخزن راه دور هدایت کنید (سپس شما همچنین باید یک درخواست کشش به شاخه اصلی ایجاد کنید، اما این خارج از محدوده این مقاله است). برای انجام این کار چه چیزی لازم است؟-
تمام تغییرات فعلی را در شاخه اصلی (به عنوان مثال، "master") دریافت کنید.
-
از این شاخه اصلی یک شاخه جداگانه برای کار خود ایجاد کنید.
-
عملکرد جدید را پیاده سازی کنید.
-
به شعبه اصلی بروید و بررسی کنید که آیا در حین کار ما تغییرات جدیدی ایجاد شده است یا خیر. اگر نه، پس همه چیز خوب است. اما اگر تغییراتی وجود داشت، پس ما این کار را انجام می دهیم: به شاخه کاری بروید و تغییرات را از شاخه اصلی به ما تغییر دهید. اگر همه چیز خوب پیش برود، عالی است. اما کاملاً ممکن است که درگیری وجود داشته باشد. همانطور که اتفاق می افتد، آنها را می توان از قبل، بدون اتلاف وقت در مخزن راه دور، حل کرد.
آیا شما تعجب می کنید که چرا باید این کار را انجام دهید؟ این رفتار خوب است و از بروز درگیری پس از فشار دادن شعبه خود به مخزن محلی جلوگیری می کند (البته این احتمال وجود دارد که همچنان تداخل رخ دهد، اما بسیار کوچکتر می شود).
- تغییرات خود را به مخزن راه دور فشار دهید.
تغییرات را از سرور راه دور دریافت کنید؟
من یک توضیح به README با یک commit جدید اضافه کردم و می خواهم این تغییرات را دریافت کنم. اگر تغییرات هم در مخزن محلی و هم در مخزن راه دور انجام شده باشد، از ما دعوت میشود که بین ادغام و rebase یکی را انتخاب کنیم. ما ادغام را انتخاب می کنیم. CTRL+T را وارد کنید :![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 13](https://cdn.codegym.cc/images/article/390ca798-748b-4e40-ac0c-d16e71901401/1024.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 14](https://cdn.codegym.cc/images/article/5664a1ee-37ba-4a00-b1c8-4be0b2537926/1024.jpeg)
یک شاخه جدید بر اساس master ایجاد کنید
اینجا همه چیز ساده است.-
به گوشه سمت راست پایین بروید و روی Git: master کلیک کنید . + شعبه جدید را انتخاب کنید .
چک باکس Checkout را انتخاب کرده و نام شعبه جدید را وارد کنید. برای من، readme- بهبود دهنده خواهد بود .
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 16](https://cdn.codegym.cc/images/article/2673da01-d6ef-44af-81ca-fffe66d9d494/512.jpeg)
سپس Git: master به Git: readme-improver تغییر خواهد کرد .
بیایید کار موازی را شبیه سازی کنیم
برای اینکه تداخل ظاهر شود، کسی باید آنها را ایجاد کند: D من README را با یک commit جدید از طریق مرورگر ویرایش می کنم، بنابراین کار موازی را شبیه سازی می کنم. انگار در همان فایل زمانی که من روی آن کار می کردم شخصی تغییراتی را ایجاد کرد. نتیجه یک درگیری خواهد بود. من کلمه "fullostью" را از خط 10 حذف می کنم.عملکرد ما را پیاده سازی کنیم
وظیفه ما تغییر README و اضافه کردن توضیحات به مقاله جدید است. یعنی کار در Git از IntelliJ IDEA می گذرد. این را اضافه کنید:![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 17](https://cdn.codegym.cc/images/article/517cfb7e-ab04-4278-94f5-3035d3e70d08/1024.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 18](https://cdn.codegym.cc/images/article/ef2c4ca9-ba1c-493f-995f-2a001ecf6480/800.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 19](https://cdn.codegym.cc/images/article/68d15321-653c-4530-a28d-0c67c62c4b89/512.jpeg)
بررسی کنید که آیا شعبه اصلی تغییر کرده است
ما وظیفه خود را به پایان رساندیم. کار می کند. تست نوشتیم همه چیز خوب است. اما قبل از فشار دادن به سرور، هنوز باید بررسی کنیم که آیا در این بین تغییراتی در شعبه اصلی ایجاد شده است یا خیر. چطور ممکن است این اتفاق بیفتد؟ خیلی راحت: یک نفر بعد از شما یک کار را دریافت می کند و آن کسی آن را سریعتر از شما انجام می دهد. پس باید به شعبه اصلی برویم. برای انجام این کار، باید کاری را انجام دهیم که در گوشه سمت راست پایین در تصویر زیر نشان داده شده است:![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 20](https://cdn.codegym.cc/images/article/c7601973-1627-4d9b-a430-601272166442/512.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 21](https://cdn.codegym.cc/images/article/3f63ad3d-0310-4e03-850a-0d26f1f6ccde/1024.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 22](https://cdn.codegym.cc/images/article/dd3f929f-1774-4a7c-a57a-5a8be1749992/512.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 23](https://cdn.codegym.cc/images/article/918e1192-0ec0-4d05-9553-1061a491aa38/800.jpeg)
- شما را بپذیرید - فقط تغییرات readme-improver را بپذیرید.
- آنها را بپذیرید - فقط تغییرات را از استاد بپذیرید.
- ادغام - خودتان انتخاب کنید که چه چیزی را می خواهید نگه دارید و چه چیزی را دور بیندازید.
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 24](https://cdn.codegym.cc/images/article/098abe65-1229-42c2-9bde-f5725614ac9a/1080.jpeg)
- اینها تغییراتی است که از readme-improver انجام شده است.
- نتیجه ادغام شده در حال حاضر، این همان چیزی است که قبل از تغییرات وجود داشت.
- تغییرات از شاخه اصلی.
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 25](https://cdn.codegym.cc/images/article/b4e09c25-234a-4d6e-a520-b5325949eca3/512.jpeg)
تغییرات را به سرور راه دور فشار دهید
مرحله بعدی فشار دادن تغییرات به سرور راه دور و ایجاد یک درخواست کشش است. برای انجام این کار کافی است CTRL+SHIFT+K را فشار دهید . سپس دریافت می کنیم:![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 26](https://cdn.codegym.cc/images/article/835c3cba-9de8-45fc-9636-917053de00bd/800.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 27](https://cdn.codegym.cc/images/article/5e5bc018-1f66-463f-bf74-dbc10f86d044/512.jpeg)
بخش پاداش
در ابتدا، من نمی خواستم ایجاد یک درخواست کشش را به این مقاله اضافه کنم، اما بدون آن کاملاً کامل نیست. بنابراین، بیایید به یک مخزن GitHub برویم (البته یکی از مخزن های شما :)) و می بینیم که GitHub از قبل می داند ما چه می خواهیم: روی Compare & pull request![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 28](https://cdn.codegym.cc/images/article/9acbd619-3c8d-4015-ac7e-2ebdfd331977/1024.jpeg)
![مسابقه ساخته شده در بهشت: Git و IntelliJ IDEA - 29](https://cdn.codegym.cc/images/article/22c8a7b5-47b0-4765-95c5-97d7aa6d6474/1024.jpeg)
GO TO FULL VERSION