Как переключаться между Git Patchset - PullRequest
2 голосов
/ 05 августа 2020

Я относительно новичок в git и ищу отзывы, связанные с командой Git для переключения между наборами патчей. Вот мой сценарий:

Я нахожусь в ветке «test» и работаю над определенным набором изменений в той же ветке (созданной другим пользователем). Я вытащил из него 3-й патчсет и начал над ним работать. Тем временем тот же разработчик разместил 4-й набор патчей с некоторыми изменениями в тех же файлах. Теперь, какая команда GIT рекомендуется для перехода к 4-му набору патчей (избегая конфликта слияния) и сохранить мою работу над последним набором патчей?

Я просто попробовал запустить команду PULL от Gerrit для этого набора изменений, но это привело в конфликте слияния. Пожалуйста посоветуй. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

В этом случае я бы сделал следующее:

  1. Зафиксируйте мое изменение
  2. Используйте команду ветки проверки git fetch "ssh://gerrit.mycorp.net:29418/my-project" refs/changes/21/6121/4 && git checkout -b change-6121-4 FETCH_HEAD
  3. Rebase, или выберите мой измените новую ветку и продолжите работу оттуда

В общем, с Gerrit я бы не рекомендовал когда-либо использовать команду pull, так как это почти всегда приводит к конфликтам слияния, которые усложняют жизнь, когда вы хотите чтобы отправить изменение позже

0 голосов
/ 05 августа 2020
  1. Зафиксируйте свои изменения и запишите фиксацию SHA1.
  2. Получите 4-й набор патчей и сбросьте его на FETCH_HEAD с помощью --hard. git fetch origin refs/changes/xx/yyyxx/4 && git reset FETCH_HEAD --hard.
  3. Примените коммит. git cherry-pick <your_commit>. Разрешите конфликт слияния, если он есть.

Чтобы сделать его более отслеживаемым, вы можете создать другую ветку для 4-го набора патчей и применить к нему свой коммит. git fetch origin refs/changes/xx/yyyxx/4 && git checkout -b foo FETCH_HEAD && git cherry-pick <your_commit>.

Возможно, вы захотите внести свои изменения в 4-й патчсет. Если да, то после git cherry-pick вы можете использовать git reset HEAD^ --soft && git commit --amend для создания нового набора патчей. Здесь HEAD^ относится к 4-му набору патчей.

...