نکات مقدماتی ضروری:
- مقاله مربوط به git را بخوانید، تکرار کنید و درک کنید . این کمک می کند مطمئن شوید که همه چیز از قبل تنظیم شده و آماده کار است.
- Intellij IDEA را نصب کنید.
- یک ساعت وقت شخصی را برای جذب کامل در نظر بگیرید.
پروژه را به صورت محلی کلون کنید
در اینجا دو گزینه وجود دارد.- اگر قبلاً یک حساب Github دارید و می خواهید چیزی را بعداً فشار دهید، بهتر است پروژه را برای خود فورک کنید و کپی خود را شبیه سازی کنید. چگونه یک چنگال درست کنیم - من در این مقاله در فصل نمونه ای از گردش کار فورکینگ توضیح دادم .
- از مخزن من کلون کنید و همه کارها را به صورت محلی انجام دهید بدون اینکه بتوانید همه چیز را روی سرور فشار دهید. پس از همه، این مخزن من خواهد بود))
-
آدرس پروژه را کپی کنید:
-
Intellij IDEA را باز کرده و Get from Version Control را انتخاب کنید:
-
آدرس را در پروژه کپی و پیست کنید:
-
از شما خواسته می شود که یک پروژه Intellij IDEA ایجاد کنید. ما پیشنهاد را می پذیریم:
-
از آنجایی که هیچ سیستم ساختی وجود ندارد و این موضوع موضوع مقاله نیست، ایجاد پروژه از منابع موجود را انتخاب کنید :
-
بعد یک نقاشی رنگ روغن مانند این وجود خواهد داشت: ما شبیه سازی را مرتب کردیم، اکنون می توانیم به اطراف نگاه کنیم.
ابتدا به Intellij IDEA به عنوان یک رابط کاربری Git نگاه کنید
یک نگاه دقیق دیگر به پروژه شبیه سازی شده بیندازید: در حال حاضر می توانید اطلاعات زیادی در مورد سیستم کنترل نسخه دریافت کنید. اولین مورد، پنل کنترل نسخه در گوشه پایین سمت چپ است. در آن می توانید تمام تغییرات محلی را پیدا کنید و لیستی از commit ها را دریافت کنید (مشابه git log). بیایید به سخنرانی Log برویم . یک جزء بصری خاص وجود دارد که به درک دقیق چگونگی روند توسعه کمک می کند. به عنوان مثال، می توانید ببینید که یک شاخه جدید با یک هدر commit اضافه شده به txt ایجاد شده است که سپس در شاخه اصلی ادغام شد. اگر روی یک commit کلیک کنید، در گوشه سمت راست می توانید تمام اطلاعات مربوط به commit را مشاهده کنید: همه تغییرات و ابرداده های آن. علاوه بر این، می توانید ببینید که چه تغییراتی ایجاد شده است. علاوه بر این، درگیری در آنجا حل شد. IDEA نیز این را به خوبی نشان می دهد. اگر بر روی فایلی که در طی این commit تغییر کرده است دوبار کلیک کنید، خواهیم دید که چگونه تضاد حل شد: قابل توجه است که در سمت راست و چپ دو نسخه از یک فایل وجود دارد که باید در یک نسخه ادغام شوند. و در وسط نتیجه نهایی است. هنگامی که یک پروژه دارای شعبات، تعهدات و کاربران زیادی است که در پروژه کار می کنند، باید به طور جداگانه بر اساس شاخه (شاخه)، کاربر (کاربر) و تاریخ (تاریخ) جستجو کنید: و آخرین چیزی که می خواهم قبل از شروع توضیح بدهم این است که چگونه بفهمیم. ما در کدام شعبه هستیم یه دقیقه بهت فرصت میدم سرچ کنی... پیداش کردی؟ آیا تسلیم می شوید؟ :D در گوشه سمت راست پایین یک دکمه Git: master وجود دارد که بعد از Git: نشان می دهد که پروژه در حال حاضر در کدام شاخه است. اگر روی دکمه کلیک کنید، می توانید کارهای مفید زیادی انجام دهید: به شعبه دیگری بروید، یک شعبه جدید ایجاد کنید، نام یک موجود را تغییر دهید و غیره.کار با مخزن
کلیدهای میانبر مفید
برای ادامه کار، باید چند کلید میانبر بسیار مفید را به خاطر بسپارید:- ctrl + t - آخرین تغییرات را از یک مخزن راه دور (git pull) دریافت کنید.
- ctrl + k - commit/مشاهده تمام تغییراتی که در حال حاضر در دسترس هستند. این شامل فایل های ردیابی نشده و اصلاح شده می شود (به مقاله من در مورد git مراجعه کنید، در آنجا توضیح داده شده است) (git commit).
- ctrl + shift + k دستوری برای فشار دادن تغییرات به یک مخزن راه دور است. تمام commit هایی که به صورت محلی ایجاد شده اند و هنوز روی ریموت نیستند، برای push (git push) ارائه می شوند.
- alt + ctrl + z - تغییرات یک فایل خاص را به وضعیت آخرین commit ایجاد شده در مخزن محلی برگردانید. اگر کل پروژه را در گوشه بالا سمت چپ انتخاب کنید، می توانید تغییرات را به همه فایل ها برگردانید.
ما چه میخواهیم؟
برای کار، باید به اسکریپت اصلی که در همه جا استفاده می شود، تسلط داشته باشیم. وظیفه این است که عملکرد جدید را در یک شاخه جداگانه پیاده سازی کنید و آن را به یک مخزن راه دور هدایت کنید (سپس باید یک درخواست کشش دیگر برای شاخه اصلی ایجاد کنید، اما این خارج از محدوده مقاله ما است). چه کاری باید انجام دهم؟-
تمام تغییرات موجود در شعبه اصلی (مثلاً استاد) را دریافت کنید.
-
بر اساس این اصلی، یک جداگانه برای کار خود ایجاد کنید.
-
اجرای عملکرد جدید
-
به شعبه اصلی بروید و بررسی کنید که آیا تغییرات جدیدی در حین کار وجود داشته است یا خیر. اگر اینطور نبود، پس همه چیز خوب است، و اگر بود، پس کارهای زیر را انجام می دهیم: به شاخه کاری می رویم و تغییرات را از شاخه اصلی به شعبه خودمان تغییر می دهیم. اگر همه چیز خوب پیش رفت، عالی است. اما ممکن است درگیری هایی وجود داشته باشد. و آنها را می توان از قبل بدون اتلاف وقت در یک مخزن راه دور حل کرد.
به نظر می رسد، چرا این کار را انجام دهید؟ این یک قانون شکل خوب است که از بروز درگیری ها پس از فشار دادن شاخه شما به مخزن محلی جلوگیری می کند (البته احتمال وجود دارد که آنها همچنان وجود داشته باشند، اما بسیار کمتر می شود).
- تغییرات خود را به یک مخزن از راه دور فشار دهید.
تغییرات را از یک سرور راه دور دریافت می کنید؟
من یک توضیحات به README با یک commit جدید اضافه کردم و می خواهم این تغییرات را دریافت کنم. اگر تغییراتی در مخازن محلی و از راه دور ایجاد شده باشد، انتخابی بین ادغام و rebase ارائه می شود. ادغام را انتخاب کنید. ctrl + t را وارد کنید : در نتیجه، می توانید ببینید که README چگونه تغییر کرده است. تغییرات مخزن از راه دور برداشته شده اند و در گوشه سمت راست پایین می توانید تمام جزئیات تغییراتی که از سرور ایجاد شده است را مشاهده کنید.یک شاخه جدید بر اساس master ایجاد کنید
اینجا همه چیز ساده است.-
به گوشه پایین سمت راست بروید و روی Git: master کلیک کنید ، + New Branch را انتخاب کنید .
چک باکس Checkout را رها کرده و نام شعبه جدید را بنویسید. برای من این می تواند readme- بهبود دهنده باشد .
پس از این، Git: master به Git: readme-improver تغییر می کند .
شبیه سازی کار موازی
برای اینکه تداخل ظاهر شود، کسی باید آنها را ایجاد کند: D من README را با یک commit جدید از طریق مرورگر ویرایش می کنم و بنابراین کار موازی را شبیه سازی می کنم. می گویند شخصی در حین کار من تغییراتی در فایل مشابه من ایجاد کرده که منجر به درگیری می شود. من کلمه "کاملا" را از خط 10 حذف می کنم.عملکرد خود را پیاده سازی کنید
وظیفه تغییر README و اضافه کردن توضیحات به مقاله جدید است، یعنی کار در git از طریق Intellij IDEA انجام می شود. این را اضافه کنید: تغییرات کامل شده اند، اکنون می توانید یک commit ایجاد کنید. کلید میانبر ctrl + k را فشار دهید ، دریافت می کنیم: قبل از ایجاد یک commit، باید به دقت به آنچه در این پنجره ارائه می شود نگاه کنید. من به طور خاص یک فلش اضافه کردم تا به شما نشان دهم کجا را نگاه کنید. در آنجا چیزهای جالب زیادی وجود دارد. در قسمت Commit Message متن commit را می نویسیم و برای ایجاد آن باید روی دکمه Commit کلیک کنید . من هنوز نحوه انجام این کار را با کلید فوری پیدا نکرده ام، بنابراین اگر کسی آن را پیدا کرد، بنویسد، بسیار خوشحال خواهم شد. می نویسیم که README تغییر کرده و یک commit ایجاد می کنیم. در نتیجه، یک هشدار در گوشه پایین سمت چپ با نام commit ظاهر می شود:بررسی کنید که آیا شاخه اصلی تغییر کرده است
ما کار را کامل کردیم، کار می کند، تست ها را نوشتیم، همه چیز خوب است. اما قبل از فشار دادن به سرور، باید بررسی کنید که آیا در این مدت تغییراتی در شاخه اصلی ایجاد شده است یا خیر. چگونه ممکن است این اتفاق بیفتد؟ خیلی ساده است: بعد از شما به شخصی وظیفه داده شد و این شخص سریعتر از شما این کار را انجام داد. بنابراین به شعبه اصلی می رویم. برای انجام این کار، باید در گوشه سمت راست پایین آنچه در شکل زیر نشان داده شده است انجام دهید: در شاخه اصلی، کلیدهای ctrl + t را فشار دهید تا آخرین تغییرات آن را از سرور راه دور دریافت کنید. اگر به تغییرات نگاه کنید، به راحتی می توانید متوجه آنچه اتفاق افتاده است: همانطور که می بینید، کلمه "به طور کامل" حذف شد. شاید این شخصی از بازاریابی بود که به این نتیجه رسید که نمی توان آن را به این شکل نوشت و به توسعه دهندگان وظیفه به روز رسانی آن را داد. ما اکنون آخرین نسخه اصلی شعبه را به صورت محلی داریم. بیایید به readme-improver برگردیم . اکنون باید تغییرات را از شاخه اصلی به ما تغییر دهیم. ما انجام می دهیم: اگر همه چیز را به درستی با من دنبال کردید، نتیجه باید یک تضاد در فایل README باشد: همچنین اطلاعات زیادی در اینجا وجود دارد که باید درک و جذب شوند. این یک لیست (در مورد یک عنصر ما) از فایلهایی را نشان میدهد که تداخل دارند. ما می توانیم سه گزینه را انتخاب کنیم:- شما را بپذیرید - فقط تغییرات readme-improver را بپذیرید.
- آنها را بپذیرید - فقط تغییرات را از استاد بپذیرید.
- ادغام - خودتان انتخاب کنید چه چیزی را نگه دارید و چه چیزی را حذف کنید.
- اینها تغییراتی از readme-improver هستند.
- نتیجه. فعلاً مانند قبل از تغییرات است.
- تغییرات از شاخه اصلی.
تغییرات را به یک سرور راه دور فشار دهید
مرحله بعدی فشار دادن تغییرات به سرور راه دور و ایجاد یک درخواست کشش است. برای انجام این کار، کافیست کلیدهای ctrl + shift + k را فشار دهید ، پس از آن میگیریم: در سمت چپ لیستی از commitهایی وجود دارد که به مخزن راه دور منتقل نشدهاند و در سمت راست همه فایلهایی وجود دارد که قبلاً انجام شدهاند. تغییر کرد. تمام: روی Push کلیک کنید ، و خوشحال خواهید شد :) اگر فشار موفقیت آمیز بود، یک اعلان مانند این در گوشه پایین سمت راست وجود دارد:بخش پاداش
من در ابتدا نمی خواستم ایجاد یک درخواست کشش را به مقاله اضافه کنم، اما به نظر می رسد به این دلیل خیلی کامل نیست. بنابراین، ما به مخزن GitHub می رویم (البته اگر مال شما باشد)))) و می بینیم که GitHub قبلاً می داند چه چیزی را به ما ارائه دهد: روی Compare & pull request کلیک کنید و سپس روی Create pull request کلیک کنید . با توجه به این واقعیت که ما تضادها را از قبل حل کرده ایم، اکنون هنگام ایجاد یک درخواست کشش، می توانید بلافاصله آن را ادغام کنید: این تمام چیزی است که این بار می خواستم به شما بگویم. البته من فقط در را باز کردم و قسمت کوچکی را به شما نشان دادم. بقیه را خودتان در صورت نیاز پیدا خواهید کرد. طبق معمول، از شما دعوت میکنم در حساب GitHub من مشترک شوید ، جایی که پروژههایی را بر اساس فناوریهای مختلفی که در محل کار استفاده میکنم پست میکنم. من اخیراً یک دستاورد شخصی داشتم - پروژه من قبلاً توسط بیش از صد توسعه دهنده رتبه بندی شده است. این یک احساس لذت باورنکردنی است که کسی از آنچه شما ساخته اید استفاده کند. و از آن به خوبی استفاده می کند.لینک های مفید
- JavaRush: شروع به کار با Git: راهنمای دقیق برای مبتدیان
- GitHub: پروژه آزمایشی برای کار با
- JavaRush: تجزیه و تحلیل استراتژی های انشعاب در Git
- JetBrains: یک مخزن Git راه اندازی کنید
- Habr : Git rebase
- GitHub: حساب من
GO TO FULL VERSION