Java Online Projects edited this page Apr 20, 2018 · 68 revisions

Git

Основы работы с системами контроля версий в IntelliJ IDEA

Правила работы с патчами на проекте

  • Как накатывать патчи есть в видео вступительного занятия Работа с проектом
  • Все изменения в проекте производятся только патчами из урока в ветке master, а cвой код (домашние задания) пишете только в ветках HWxx. Модификация кода в ветке master только через патчи в материалах урока (Apply Patch), иначе придется мержить код. Все патчи объязательны и применяются по порядку. Если при применении патча предлагается мердж, cмотрите: Patch не накатывается (предлагает merge) .

ВНИМАНИЕ! проверьте при коммите, что галочка справа Optimize imports выключена, иначе ваши классы будут отличаться от тех, что в репозитории.

  • Делать Apply Patch лучше по одному, непосредственно перед видео на эту тему, а при просмотре видео сразу отслеживать все изменения кода проекта по изменению в патче (Version Control->Local Changes-> Ctrl+D на файле, Alt + Left/Right для просмотра следующего изменения):

image

  • при первом Apply надо выбрать имя локального ченджлиста Name: Default. Все остальные патчи (если имя не менять) будут также в него попадать.

image

  • commit рекомендую делать после каждого патча (тогда изменения в проекте смотреть легче), а push после всех патчей/коммитов урока (откатываться проще и работы меньше).

  • После патча часто полезно запустить и посмотреть на работу приложения (если оно запускается).

  • Правило: Перед каждым изменением проверяйте что меняется: Ctrl+D по всем файлам ченджлиста. Если только пробелы - делайте revert.

Как вести проект (у себя в локальном проекте):

Вступительное занятие:

  • apply patch Prepare_to_HW0.patch
  • git commit/push

Домашнее задание HW0:

  • создать ветку HW0: в IDEA внизу справа + New Branch ->HW0 new_branch
  • выполняете Домашнее Задание (HW0), git commit/push
  • выполняете HW0 Optional, git commit/push

Урок 1:

  • переключаемся на master: в IDEA внизу справа Local Branches -> master -> checkout
  • apply все патчи урока Lesson01, git commit/push

Домашнее задание HW1:

  • создать ветку HW1: в IDEA внизу справа + New Branch ->HW1
  • выполняете HW1, git commit/push
  • выполняете HW1 Optional, git commit/push

Урок 2:

  • переключаемся на master: в IDEA внизу справа Local Branches -> master -> checkout
  • apply все патчи Lesson02, git commit/push
  • ...

Так должна выглядеть ваш Version Control -> Log: branch

Как откатить patch?

Version control -> Log Правой кнопкой на нужной ревизии -> Reset Current Branch to Here Soft- оставить все изменения, Hard - все затереть (в том числе локальные изменения)

resetcurrentbranch

Если изменения уже запушили, то нужно их перетереть новым push --force

Из IDEA:

git_force git_force2


Обновить проект из github: Ctrl+T

update

Сравнить файл после определенного патча на github с локальным

  1. Идем в историю коммитов репозитория проекта:

image

  1. Выбираем просмотр репозитория после нужного патча

image

  1. Выбираем проблемный файл в формате Raw

image

  1. Копируем в буфер и сравниваем со своим в IDEA

image

Patch не накатывается (предлагает merge)

Вероятнее всего Ваша ветка master не соответствует моей. Нужно просто сравнить проблемный файл.

Например открываете проблемный класс на github в режиме Raw (кнопка справа вверху над классом, например https://raw.githubusercontent.com/JavaWebinar/topjava02/master/src/main/java/ru/javawebinar/topjava/web/meal/UserMealRestController.java, копируете его (Ctrl+A, Ctrl+C) и сравниваете со своим в IDEA: View->Compare with Clipboard.

В более общем случае (когда github уже ушел вперед) посмотреть содержимое файла для определенной версии в IDEA можно через Git->History на файле: idea_history или на истории изменений Version Control->Log

idea_revision и двойном щелчке на файле.

Сравнивать можно в github с текущей версией проекта либо с соответствующей ревизией:

github_revision


Сравнить содержимое можно скопировав содержимое из github в буфер:

github_raw

и сделать Compare with clipboard в IDEA:

compare_with_clipboard

Если ваш файл совпадает с тем, что в репозитории и патч все равно не накатывается, напришите мне в личку- имя файла, номер патча и проблемные строки, я поправлю патч. Картинок с вашими ошибками слать НЕ НАДО, учимся грамотно определять и описывать проблему.

Чем просматривать локально файлы в формате markdown ?

  • в IDEA, плагин Markdown Navigator
  • в Chrome, плагин Markdown Preview (в опциях надо разрешить открывать файлы по ссылкам)
  • можно вчекинить уроки себе с github репозиторий и смотреть через github
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.