Как создать ветку из старого коммита в нашем репозитории GOGs, нажать на нее, чтобы сделать тег, а затем объединить изменения с Master, не теряя наши изменения? - PullRequest
0 голосов
/ 28 октября 2019

Наша команда работает над унаследованным приложением и относительно невелика и плохо знакома с использованием GIT-репозиториев для управления нашим исходным кодом. У нас нет Git Master, и у нас действительно нет никакого способа держать наши изменения организованными.

В результате мы внесли некоторые изменения в нашу ветку Master после успешного выпуска - только для того, чтобы найти, что выпуск теперь нуждается в оперативном исправлении.

Мы не хотим выдвигать изменения, над которыми мы работаем, к следующему выпуску, поэтому в идеале мы хотим:

  1. Один человек должен извлечь последний коммит (стег для нашего выпуска) от GOGs
  2. Внесите изменения в код, чтобы исправить ошибку в рабочей среде
  3. Нажмите на изменение и создайте тег, чтобы наша группа по выпуску смогла его развернуть
  4. Объедините это изменение с нашей веткой Master, чтобы наша работа над следующим выпуском не была потеряна, но применено изменение для исправления

Это наша первая попытка сделать исправление в реальном времени. к коду - я видел некоторые предложения, но большинство из них основаны на ветке разработчика, которая еще не была выдвинута. Что мы можем сделать, как группа, которая уже выдвинула изменения в Master и хочет применить исправление к старому push?

1 Ответ

1 голос
/ 28 октября 2019

То, что вы описываете, в основном правильно.

  1. Определите коммит, который сейчас находится в производстве. Допустим, это abc123f. Это также может быть тег, который работает так же, как и коммит (коммит, ветвь, тэг - все являются ссылками. Ветвь является движущейся целью, но коммит и тэг неизменны).
  2. В репо проверьтеиз этого коммита: git checkout abc123f
  3. Создайте ветку исправлений: git checkout -b hotfix-branch
  4. Внесите изменения, протестируйте и подтвердите.
  5. Пометьте коммит, с которым вы закончите, и нажмите на него
  6. Передайте тег команде релиза
  7. git checkout master; git fetch --all; git pull, чтобы получить актуального мастера
  8. git merge hotfix-branch, за которым следует git push, добавит и вставит исправление в мастер-апстрим.

Помните, что вы всегда можете использовать git diff для сравнения веток, чтобы проверить свою работу и проверить. Я делаю это очень часто, и вы тоже должны это делать, так как уверенность в своих изменениях является основным преимуществом контроля версий! 8

...