Git: Обновление PR с конкретными изменениями после того, как филиал расходится - PullRequest
2 голосов
/ 27 мая 2019

У меня есть локальная ветка, my_branch, которую я сделал после клонирования repo.Я сделал два коммита (сначала последний коммит):

  • Обновления YAML
  • Основные изменения

Я нажал на свою ветку и сделал PR.Потребовалось время, чтобы одобрить его, и теперь я не могу слиться чисто в origin/master.

Я хотел бы избавиться от моего YAML updates коммита, перезапустить процесс, который генерирует эти изменения локально, и воспроизвести мои изменения на origin/master, исправляя любые конфликты на этом пути.

Правильный ли это подход:

  1. Отбросьте мой YAML updates коммит с git reset --soft HEAD^

  2. git checkout master; git pull origin master

  3. git checkout my_branch; git checkout origin/master config1.yaml; git checkout origin/master config2.yaml

  4. Повторно запустить процесс для создания обновлений YAML

  5. git add config1.yaml config2.yaml

  6. git commit -m "Updating YAML files"

  7. git rebase -i master

    Если я столкнусь с конфликтами слияний, я должен исправить их и запустить git rebase -- continue

  8. Предполагая, 7. успешно, git push -f

РЕДАКТИРОВАТЬ: выполняет те же шаги, что и выше, но поменять местами шаги 4 и 7. эквивалентно выполнениюшаги с 1. по 8. последовательно?

Обычно я просто пробую вышеупомянутое, прежде чем спрашивать, но не хочу портить мой местный филиал или пиар.

1 Ответ

2 голосов
/ 27 мая 2019

Шаги выглядят хорошо, но в любом случае у вас низкий риск испортить:

  • ваша локальная ветвь: вы всегда можете пометить ее новой веткой или тегом, перед тем как начать этот шаг,Если конечный результат не соответствует ожидаемому, вы можете сбросить это старое состояние и начать заново
  • вашу PR-ветвь: снова, если у новой вытесненной PR-ветки есть какие-либо проблемы, вы можете принудительно вытолкнуть старую.один.

Является ли замена шагов 4 и 7 последовательной последовательностью шагов с 1 по 8.

Да: ребаз изменяет историюиз коммитов в любом случае: ваш новый коммит до или после перебазирования не окажет никакого негативного влияния, и последний шаг (8) останется git push --force.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...