
Необходими входове:
- Прочетете, следвайте и разберете моята статия за Git . Това ще помогне да се гарантира, че всичко е настроено и готово за работа.
- Инсталирайте IntelliJ IDEA.
- Отделете един час лично време, за да постигнете пълно майсторство.
Клонирайте проекта локално
Тук има два варианта:- Ако вече имате акаунт в GitHub и искате да натиснете нещо по-късно, по-добре е да разклоните проекта и да клонирате собственото си копие.
- Клонирайте моето хранorще и правете всичко локално, без възможността да избутате всичко на сървъра. Все пак това е моето хранorще :)
-
Копирайте address на проекта:
-
Отворете IntelliJ IDEA и изберете „Вземете от контрола на версиите“:
-
Копирайте и поставете address на проекта:
-
Ще бъдете подканени да създадете проект IntelliJ IDEA. Приемете офертата:
-
Тъй като няма система за изграждане и това е извън обхвата на тази статия, ние избираме Създаване на проект от съществуващи източници :
-
След това ще видите този красив екран:
След като разбрахме клонирането, можете да се огледате наоколо.
Първи поглед към IntelliJ IDEA като Git UI
Погледнете по-отблизо клонирания проект: вече можете да получите много информация за системата за контрол на версиите. Първо, имаме панела за контрол на версиите в долния ляв ъгъл. Тук можете да намерите всички локални промени и да получите списък с ангажименти (аналогично на "git log"). Нека да преминем към обсъждане на Log . Има известна визуализация, която ни помага да разберем How точно е протекло развитието. Например, можете да видите, че е създаден нов клон с добавена заглавка към txt commit, който след това е обединен в главния клон. Ако щракнете върху ангажимент, можете да видите в десния ъгъл цялата информация за ангажимента: всички негови промени и метаданни.



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

Howво искаме
За да свършим работата, трябва да овладеем основен сценарий, който се използва навсякъде. Целта е да внедрите нова функционалност в отделен клон и след това да я преместите в отдалечено хранorще (тогава трябва да създадете и заявка за изтегляне към главния клон, но това е извън обхвата на тази статия). Какво е необходимо за това?-
Вземете всички текущи промени в основния клон (например "master").
-
От този основен клон създайте отделен клон за вашата работа.
-
Внедрете новата функционалност.
-
Отидете до основния клон и проверете дали е имало нови промени, докато работим. Ако не, значи всичко е наред. Но ако има промени, тогава правим следното: отиваме в работния клон и пребазираме промените от основния клон към нашия. Ако всичко върви добре, тогава страхотно. Но е напълно възможно да има конфликти. Както се случва, те просто могат да бъдат решени предварително, без да губите време в отдалеченото хранorще.
Чудите ли се защо трябва да направите това? Това е добро възпитание и предотвратява възникването на конфликти след натискане на вашия клон към локалното хранorще (има, разбира се, възможност конфликтите да възникнат, но тя става много по-малка ) .
- Изпратете вашите промени в отдалеченото хранorще.
Получаване на промени от отдалечения сървър?
Добавих описание към README с нов ангажимент и искам да получа тези промени. Ако са напequalsи промени Howто в локалното хранorще, така и в отдалеченото, тогава сме поканени да изберем между сливане и повторно базиране. Избираме да се слеем. Въведете CTRL+T :

Създайте нов клон на базата на master
Тук всичко е просто.-
Отидете в долния десен ъгъл и щракнете върху Git: master . Изберете + Нов клон .
Оставете отметката в квадратчето Checkout branch и въведете името на новия клон. За мен ще бъде readme-improver .

След това Git: master ще се промени на Git: readme-improver .
Нека симулираме паралелна работа
За да се появят конфликти, някой трябва да ги създаде :D Ще редактирам README с нов комит през браузъра, като по този начин симулирам паралелна работа. Сякаш някой е направил промени в същия файл, докато аз работя върху него. Резултатът ще бъде конфликт. Ще премахна думата "fully" от ред 10.Внедрете нашата функционалност
Нашата задача е да променим README и да добавим описание към новата статия. Тоест работата в Git минава през IntelliJ IDEA. Добавете това:


Проверете дали основният клон се е променил
Изпълнихме задачата си. Работи. Писахме тестове. Всичко е наред. Но преди да преминем към сървъра, все пак трябва да проверим дали междувременно е имало промени в главния клон. Как може да стане това? Много лесно: някой получава задача след вас и този някой я изпълнява по-бързо, отколкото вие изпълнявате задачата си. Така че трябва да отидем до главния клон. За да направим това, трябва да направим това, което е показано в долния десен ъгъл на екранната снимка по-долу:



- приемете вашето — приемете само промени от readme-improver.
- приемат техните — приемат само промени от главния.
- сливане — изберете сами Howво искате да запазите и Howво да изхвърлите.

- Това са промените от readme-improver.
- Обединеният резултат. Засега е това, което съществуваше преди промените.
- Промените от главния клон.

Пуснете промените към отдалечения сървър
Следващата стъпка е да изпратите промените на отдалечения сървър и да създадете заявка за изтегляне. За да направите това, просто натиснете CTRL+SHIFT+K . Тогава получаваме:

Бонус част
Първоначално не исках да добавя създаването на заявка за изтегляне към тази статия, но не е напълно пълна без нея. И така, нека отидем до хранorще на GitHub (разбира се, ваше :)) и ще видим, че GitHub вече знае Howво искаме:

GO TO FULL VERSION