CodeGym /Java блог /Случаен /Съвпадение, направено в небето: Git и IntelliJ IDEA
John Squirrels
Ниво
San Francisco

Съвпадение, направено в небето: Git и IntelliJ IDEA

Публикувано в групата
Придържайки се към установената традиция, поздравявам ви като бъдещи старши софтуерни инженери. Съвпадение, напequalsо на небето: Git и IntelliJ IDEA - 1Днешната статия е логично продължение на моята статия за Git . В статията за Git описах How се работи с Git в командния ред. Днес ще ви покажа How да направите всичко това в IntelliJ IDEA. В началото на моето пътуване като разработчик използвах командния ред и мислех, че нямам нужда от GUI за това. В края на краищата всичко беше ясно, Howто си беше... Но това беше точно до момента, в който започнах да използвам Git в IntelliJ IDEA... От самото начало искам да кажа, че описвам личния си опит. Има няколко начина за решаване на даден проблем в IntelliJ IDEA. Ако знаете по-добър начин от това, което ще опиша в статията, напишете го в коментарите и ще го обсъдим.

Необходими входове:

  1. Прочетете, следвайте и разберете моята статия за Git . Това ще помогне да се гарантира, че всичко е настроено и готово за работа.
  2. Инсталирайте IntelliJ IDEA.
  3. Отделете един час лично време, за да постигнете пълно майсторство.
Нека работим с демонстрационния проект , който използвах за статията за Git. АКТУАЛИЗАЦИЯ:По време на публикуването новият потребителски интерфейс на GitHub ще бъде наличен и някои икони няма да бъдат там, където са показани в статията. Не се тревожете: просто трябва or да не превключвате към новия потребителски интерфейс, or да ги потърсите.

Клонирайте проекта локално

Тук има два варианта:
  1. Ако вече имате акаунт в GitHub и искате да натиснете нещо по-късно, по-добре е да разклоните проекта и да клонирате собственото си копие.
  2. Клонирайте моето хранorще и правете всичко локално, без възможността да избутате всичко на сървъра. Все пак това е моето хранorще :)
За да клонирате проект от GitHub, трябва да копирате връзката към проекта и да я прехвърлите на IntelliJ IDEA:
  1. Копирайте address на проекта:

    Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 2
  2. Отворете IntelliJ IDEA и изберете „Вземете от контрола на версиите“:

    Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 3
  3. Копирайте и поставете address на проекта:

    Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 4
  4. Ще бъдете подканени да създадете проект IntelliJ IDEA. Приемете офертата:

    Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 5
  5. Тъй като няма система за изграждане и това е извън обхвата на тази статия, ние избираме Създаване на проект от съществуващи източници :

    Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 6
  6. След това ще видите този красив екран: Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 7След като разбрахме клонирането, можете да се огледате наоколо.

Първи поглед към IntelliJ IDEA като Git UI

Погледнете по-отблизо клонирания проект: вече можете да получите много информация за системата за контрол на версиите. Първо, имаме панела за контрол на версиите в долния ляв ъгъл. Тук можете да намерите всички локални промени и да получите списък с ангажименти (аналогично на "git log"). Нека да преминем към обсъждане на Log . Има известна визуализация, която ни помага да разберем How точно е протекло развитието. Например, можете да видите, че е създаден нов клон с добавена заглавка към txt commit, който след това е обединен в главния клон. Ако щракнете върху ангажимент, можете да видите в десния ъгъл цялата информация за ангажимента: всички негови промени и метаданни.Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 8Освен това можете да видите действителните промени. Виждаме също, че там е разрешен конфликт. IDEA също представя това много добре. Ако щракнете двукратно върху file, който е бил променен по време на този комит, ще видим How е разрешен конфликтът: Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 9Отбелязваме, че отляво и отдясно имаме двете версии на един и същи файл, които трябваше да бъдат обединени в един. И в средата имаме крайния обединен резултат. Когато даден проект има много клонове, ангажименти и потребители, трябва да търсите отделно по клон, потребител и дата: Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 10Последното нещо, което искам да обясня, преди да започнем, е How да разберем в кой клон се намираме. Ще ви дам minutesа, за да го разбера... Намери ли го? Предавам се? :D В долния десен ъгъл има бутон с надпис Git: master. Всичко, което следва "Git:", е текущият клон. Ако щракнете върху бутона, можете да направите много полезни неща: да превключите към друг клон, да създадете нов, да преименувате съществуващ и т.н.Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 11

Работа с хранorще

Полезни клавишни комбинации

За бъдеща работа трябва да запомните няколко много полезни клавишни комбинации:
  1. CTRL+T — Вземете последните промени от отдалеченото хранorще (git pull).
  2. CTRL+K — Създайте ангажимент / вижте всички текущи промени. Това включва Howто непроследени, така и модифицирани файлове (вижте моята статия за git, която обяснява това) (git commit).
  3. CTRL+SHIFT+K — Това е командата за натискане на промени в отдалеченото хранorще. Всички ангажименти, създадени локално и все още не в отдалеченото хранorще, ще бъдат насочени (git push).
  4. ALT+CTRL+Z — Възстановяване на промените в конкретен файл до състоянието на последния комит, създаден в локалното хранorще. Ако изберете целия проект в горния ляв ъгъл, можете да отмените промените във всички файлове.
Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 12

Howво искаме

За да свършим работата, трябва да овладеем основен сценарий, който се използва навсякъде. Целта е да внедрите нова функционалност в отделен клон и след това да я преместите в отдалечено хранorще (тогава трябва да създадете и заявка за изтегляне към главния клон, но това е извън обхвата на тази статия). Какво е необходимо за това?
  1. Вземете всички текущи промени в основния клон (например "master").

  2. От този основен клон създайте отделен клон за вашата работа.

  3. Внедрете новата функционалност.

  4. Отидете до основния клон и проверете дали е имало нови промени, докато работим. Ако не, значи всичко е наред. Но ако има промени, тогава правим следното: отиваме в работния клон и пребазираме промените от основния клон към нашия. Ако всичко върви добре, тогава страхотно. Но е напълно възможно да има конфликти. Както се случва, те просто могат да бъдат решени предварително, без да губите време в отдалеченото хранorще.

    Чудите ли се защо трябва да направите това? Това е добро възпитание и предотвратява възникването на конфликти след натискане на вашия клон към локалното хранorще (има, разбира се, възможност конфликтите да възникнат, но тя става много по-малка ) .

  5. Изпратете вашите промени в отдалеченото хранorще.
Какво ще последва зависи от вашите задачи и вашето въображение.

Получаване на промени от отдалечения сървър?

Добавих описание към README с нов ангажимент и искам да получа тези промени. Ако са напequalsи промени Howто в локалното хранorще, така и в отдалеченото, тогава сме поканени да изберем между сливане и повторно базиране. Избираме да се слеем. Въведете CTRL+T : Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 13Вече можете да видите How се е променил README, т.е. промените от отдалеченото хранorще са бor изтеглени, а в долния десен ъгъл можете да видите всички подробности за промените, дошли от сървъра.Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 14

Създайте нов клон на базата на master

Тук всичко е просто.
  1. Отидете в долния десен ъгъл и щракнете върху Git: master . Изберете + Нов клон .

    Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 15
  2. Оставете отметката в квадратчето Checkout branch и въведете името на новия клон. За мен ще бъде readme-improver .

    Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 16

    След това Git: master ще се промени на Git: readme-improver .

Нека симулираме паралелна работа

За да се появят конфликти, някой трябва да ги създаде :D Ще редактирам README с нов комит през браузъра, като по този начин симулирам паралелна работа. Сякаш някой е направил промени в същия файл, докато аз работя върху него. Резултатът ще бъде конфликт. Ще премахна думата "fully" от ред 10.

Внедрете нашата функционалност

Нашата задача е да променим README и да добавим описание към новата статия. Тоест работата в Git минава през IntelliJ IDEA. Добавете това: Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 17Промените са напequalsи. Сега можем да създадем ангажимент. Натиснете CTRL+K , което ни дава: Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 18Преди да създадем ангажимент, трябва да разгледаме внимателно Howво предлага този прозорец. Добавих червени стрелки, за да ви покажа къде да търсите. Тук има много интересни неща. В секцията Commit Message пишем текст, свързан с ангажимента. След това, за да го създадем, трябва да щракнете върху Commit. Все още не съм открил How да направя това с бърз клавиш. Ако някой разбере How, моля да ми пише - много ще ме зарадва. Пишем, че README е променен и създаваме ангажимента. В долния ляв ъгъл се появява предупреждение с името на ангажимента:Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 19

Проверете дали основният клон се е променил

Изпълнихме задачата си. Работи. Писахме тестове. Всичко е наред. Но преди да преминем към сървъра, все пак трябва да проверим дали междувременно е имало промени в главния клон. Как може да стане това? Много лесно: някой получава задача след вас и този някой я изпълнява по-бързо, отколкото вие изпълнявате задачата си. Така че трябва да отидем до главния клон. За да направим това, трябва да направим това, което е показано в долния десен ъгъл на екранната снимка по-долу: Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 20В основния клон натиснете CTRL+T , за да получите последните промени от отдалечения сървър. Гледайки Howви са промените, можете лесно да видите Howво се е случило:Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 21Думата "fully" беше премахната. Може би някой от маркетинга е решил, че не трябва да се пише така и е дал задача на разработчиците да го актуализират. Вече имаме локално копие на най-новата version на главния клон. Върнете се към readme-improver . Сега трябва да пребазираме промените от основния клон към нашия. Ние правим това: Съвпадение, напequalsо на небето: Git и IntelliJ IDEA - 22Ако сте направor всичко правилно и сте следвали заедно с мен, резултатът трябва да покаже конфликт във file README: Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 23Тук също имаме много информация, която трябва да разберем и попием. Тук е показан списък с файлове (в нашия случай един файл), които имат конфликти. Можем да избираме от три опции:
  1. приемете вашето — приемете само промени от readme-improver.
  2. приемат техните — приемат само промени от главния.
  3. сливане — изберете сами Howво искате да запазите и Howво да изхвърлите.
Не е ясно Howво се е променило. Ако има промени в главния клон, те трябва да са необходими там, така че не можем просто да приемем нашите промени. Съответно избираме merge : Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 24Тук можем да видим, че има три части:
  1. Това са промените от readme-improver.
  2. Обединеният резултат. Засега е това, което съществуваше преди промените.
  3. Промените от главния клон.
Трябва да произведем общ резултат, който да задоволи всички. Преглеждайки Howво е променено ПРЕДИ нашите промени, разбираме, че те просто премахнаха думата "fully". Добре няма проблем! Това означава, че ние също ще го премахнем в обединения резултат и след това ще добавим нашите промени. След като коригираме обединения резултат, можем да щракнете върху Прилагане . След това ще се появи известие, което ни казва, че повторното базиране е успешно: Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 25Ето! Разрешихме първия си конфликт чрез IntelliJ IDEA :D

Пуснете промените към отдалечения сървър

Следващата стъпка е да изпратите промените на отдалечения сървър и да създадете заявка за изтегляне. За да направите това, просто натиснете CTRL+SHIFT+K . Тогава получаваме: Съвпадение, напequalsо на небето: Git и IntelliJ IDEA - 26Отляво ще има списък с ангажименти, които не са бor изпратени към отдалеченото хранorще. Вдясно ще бъдат всички променени файлове. И това е! Натиснете Push и ще изпитате щастие :) Ако натискането е успешно, ще видите известие като това в долния десен ъгъл:Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 27

Бонус част

Първоначално не исках да добавя създаването на заявка за изтегляне към тази статия, но не е напълно пълна без нея. И така, нека отидем до хранorще на GitHub (разбира се, ваше :)) и ще видим, че GitHub вече знае Howво искаме: Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 28Щракнете върху Compare & pull request . След това щракнете върху Създаване на заявка за изтегляне . Тъй като разрешихме конфликтите предварително, сега, когато създаваме заявка за изтегляне, можем веднага да я обединим: Съвпадение, напequalsо в небето: Git и IntelliJ IDEA - 29И това е всичко, което исках да кажа този път. Разбира се, аз отворих вратата само малко за вас и ви показах малка част. За останалото ще научите, когато имате нужда. Имам навика да ви каня да ме следвате в GitHub, където публикувам свои проекти, включващи различни технологии, които използвам в работата си. Наскоро постигнах лично постижение: един от моите проекти получи звезди от повече от сто разработчици. Има невероятно чувство на радост, когато знаеш, че това, което си направил, се използва от някой друг. И да го използвате за добро.

Полезни връзки

  1. CodeGym: Първи стъпки с Git: изчерпателно ръководство за начинаещи
  2. GitHub: Демо проект за практика
  3. JetBrains: Настройте Git Repository
  4. GitHub: Моят акаунт
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION