![Съвпадение, напequalsо на небето: Git и IntelliJ IDEA - 1](https://cdn.codegym.cc/images/article/984d09f2-954b-4477-8439-de0b53537e6a/800.jpeg)
Необходими входове:
- Прочетете, следвайте и разберете моята статия за Git . Това ще помогне да се гарантира, че всичко е настроено и готово за работа.
- Инсталирайте IntelliJ IDEA.
- Отделете един час лично време, за да постигнете пълно майсторство.
Клонирайте проекта локално
Тук има два варианта:- Ако вече имате акаунт в GitHub и искате да натиснете нещо по-късно, по-добре е да разклоните проекта и да клонирате собственото си копие.
- Клонирайте моето хранorще и правете всичко локално, без възможността да избутате всичко на сървъра. Все пак това е моето хранorще :)
-
Копирайте address на проекта:
-
Отворете IntelliJ IDEA и изберете „Вземете от контрола на версиите“:
-
Копирайте и поставете address на проекта:
-
Ще бъдете подканени да създадете проект IntelliJ IDEA. Приемете офертата:
-
Тъй като няма система за изграждане и това е извън обхвата на тази статия, ние избираме Създаване на проект от съществуващи източници :
-
След това ще видите този красив екран:
След като разбрахме клонирането, можете да се огледате наоколо.
Първи поглед към IntelliJ IDEA като Git UI
Погледнете по-отблизо клонирания проект: вече можете да получите много информация за системата за контрол на версиите. Първо, имаме панела за контрол на версиите в долния ляв ъгъл. Тук можете да намерите всички локални промени и да получите списък с ангажименти (аналогично на "git log"). Нека да преминем към обсъждане на Log . Има известна визуализация, която ни помага да разберем How точно е протекло развитието. Например, можете да видите, че е създаден нов клон с добавена заглавка към txt commit, който след това е обединен в главния клон. Ако щракнете върху ангажимент, можете да видите в десния ъгъл цялата информация за ангажимента: всички негови промени и метаданни.![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 8](https://cdn.codegym.cc/images/article/b386ff85-a7a7-4ba5-937e-081af1b03a07/1024.jpeg)
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 9](https://cdn.codegym.cc/images/article/d7553c32-3ebe-4ae4-bbe8-cb7e4010bfd2/1024.jpeg)
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 10](https://cdn.codegym.cc/images/article/5b7c43da-f06d-4c72-99fa-7569654fec3e/1024.jpeg)
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 11](https://cdn.codegym.cc/images/article/5d9bd7d3-d162-430e-acbe-d0702c8c241f/1024.jpeg)
Работа с хранorще
Полезни клавишни комбинации
За бъдеща работа трябва да запомните няколко много полезни клавишни комбинации:- CTRL+T — Вземете последните промени от отдалеченото хранorще (git pull).
- CTRL+K — Създайте ангажимент / вижте всички текущи промени. Това включва Howто непроследени, така и модифицирани файлове (вижте моята статия за git, която обяснява това) (git commit).
- CTRL+SHIFT+K — Това е командата за натискане на промени в отдалеченото хранorще. Всички ангажименти, създадени локално и все още не в отдалеченото хранorще, ще бъдат насочени (git push).
- ALT+CTRL+Z — Възстановяване на промените в конкретен файл до състоянието на последния комит, създаден в локалното хранorще. Ако изберете целия проект в горния ляв ъгъл, можете да отмените промените във всички файлове.
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 12](https://cdn.codegym.cc/images/article/a80e6367-7319-4cd3-8cbd-2e4237c77ed5/512.jpeg)
Howво искаме
За да свършим работата, трябва да овладеем основен сценарий, който се използва навсякъде. Целта е да внедрите нова функционалност в отделен клон и след това да я преместите в отдалечено хранorще (тогава трябва да създадете и заявка за изтегляне към главния клон, но това е извън обхвата на тази статия). Какво е необходимо за това?-
Вземете всички текущи промени в основния клон (например "master").
-
От този основен клон създайте отделен клон за вашата работа.
-
Внедрете новата функционалност.
-
Отидете до основния клон и проверете дали е имало нови промени, докато работим. Ако не, значи всичко е наред. Но ако има промени, тогава правим следното: отиваме в работния клон и пребазираме промените от основния клон към нашия. Ако всичко върви добре, тогава страхотно. Но е напълно възможно да има конфликти. Както се случва, те просто могат да бъдат решени предварително, без да губите време в отдалеченото хранorще.
Чудите ли се защо трябва да направите това? Това е добро възпитание и предотвратява възникването на конфликти след натискане на вашия клон към локалното хранorще (има, разбира се, възможност конфликтите да възникнат, но тя става много по-малка ) .
- Изпратете вашите промени в отдалеченото хранorще.
Получаване на промени от отдалечения сървър?
Добавих описание към README с нов ангажимент и искам да получа тези промени. Ако са напequalsи промени Howто в локалното хранorще, така и в отдалеченото, тогава сме поканени да изберем между сливане и повторно базиране. Избираме да се слеем. Въведете CTRL+T :![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 13](https://cdn.codegym.cc/images/article/390ca798-748b-4e40-ac0c-d16e71901401/1024.jpeg)
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 14](https://cdn.codegym.cc/images/article/5664a1ee-37ba-4a00-b1c8-4be0b2537926/1024.jpeg)
Създайте нов клон на базата на master
Тук всичко е просто.-
Отидете в долния десен ъгъл и щракнете върху Git: master . Изберете + Нов клон .
Оставете отметката в квадратчето Checkout branch и въведете името на новия клон. За мен ще бъде readme-improver .
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 16](https://cdn.codegym.cc/images/article/2673da01-d6ef-44af-81ca-fffe66d9d494/512.jpeg)
След това Git: master ще се промени на Git: readme-improver .
Нека симулираме паралелна работа
За да се появят конфликти, някой трябва да ги създаде :D Ще редактирам README с нов комит през браузъра, като по този начин симулирам паралелна работа. Сякаш някой е направил промени в същия файл, докато аз работя върху него. Резултатът ще бъде конфликт. Ще премахна думата "fully" от ред 10.Внедрете нашата функционалност
Нашата задача е да променим README и да добавим описание към новата статия. Тоест работата в Git минава през IntelliJ IDEA. Добавете това:![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 17](https://cdn.codegym.cc/images/article/517cfb7e-ab04-4278-94f5-3035d3e70d08/1024.jpeg)
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 18](https://cdn.codegym.cc/images/article/ef2c4ca9-ba1c-493f-995f-2a001ecf6480/800.jpeg)
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 19](https://cdn.codegym.cc/images/article/68d15321-653c-4530-a28d-0c67c62c4b89/512.jpeg)
Проверете дали основният клон се е променил
Изпълнихме задачата си. Работи. Писахме тестове. Всичко е наред. Но преди да преминем към сървъра, все пак трябва да проверим дали междувременно е имало промени в главния клон. Как може да стане това? Много лесно: някой получава задача след вас и този някой я изпълнява по-бързо, отколкото вие изпълнявате задачата си. Така че трябва да отидем до главния клон. За да направим това, трябва да направим това, което е показано в долния десен ъгъл на екранната снимка по-долу:![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 20](https://cdn.codegym.cc/images/article/c7601973-1627-4d9b-a430-601272166442/512.jpeg)
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 21](https://cdn.codegym.cc/images/article/3f63ad3d-0310-4e03-850a-0d26f1f6ccde/1024.jpeg)
![Съвпадение, напequalsо на небето: Git и IntelliJ IDEA - 22](https://cdn.codegym.cc/images/article/dd3f929f-1774-4a7c-a57a-5a8be1749992/512.jpeg)
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 23](https://cdn.codegym.cc/images/article/918e1192-0ec0-4d05-9553-1061a491aa38/800.jpeg)
- приемете вашето — приемете само промени от readme-improver.
- приемат техните — приемат само промени от главния.
- сливане — изберете сами Howво искате да запазите и Howво да изхвърлите.
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 24](https://cdn.codegym.cc/images/article/098abe65-1229-42c2-9bde-f5725614ac9a/1080.jpeg)
- Това са промените от readme-improver.
- Обединеният резултат. Засега е това, което съществуваше преди промените.
- Промените от главния клон.
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 25](https://cdn.codegym.cc/images/article/b4e09c25-234a-4d6e-a520-b5325949eca3/512.jpeg)
Пуснете промените към отдалечения сървър
Следващата стъпка е да изпратите промените на отдалечения сървър и да създадете заявка за изтегляне. За да направите това, просто натиснете CTRL+SHIFT+K . Тогава получаваме:![Съвпадение, напequalsо на небето: Git и IntelliJ IDEA - 26](https://cdn.codegym.cc/images/article/835c3cba-9de8-45fc-9636-917053de00bd/800.jpeg)
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 27](https://cdn.codegym.cc/images/article/5e5bc018-1f66-463f-bf74-dbc10f86d044/512.jpeg)
Бонус част
Първоначално не исках да добавя създаването на заявка за изтегляне към тази статия, но не е напълно пълна без нея. И така, нека отидем до хранorще на GitHub (разбира се, ваше :)) и ще видим, че GitHub вече знае Howво искаме:![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 28](https://cdn.codegym.cc/images/article/9acbd619-3c8d-4015-ac7e-2ebdfd331977/1024.jpeg)
![Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 29](https://cdn.codegym.cc/images/article/22c8a7b5-47b0-4765-95c5-97d7aa6d6474/1024.jpeg)
GO TO FULL VERSION