Предположим, у меня есть две ветви: master
и deploy
.Ветвь master
является текущим «краевым» кодом - функция и ветви исправления ошибок объединены в master
.С другой стороны, ветвь deploy
- это то, что отслеживает моя система CI для запуска автоматического развертывания.Обычный рабочий процесс будет состоять в том, что когда код считается «хорошим» на master
, он объединяется с deploy
, что вызывает автоматическое развертывание.
При тестировании среды CI я сделал несколько тестовых коммитов вdeploy
филиал.Коммиты просто вносили изменения ради изменений, просто чтобы проверить триггер CI.Сейчас может быть около 12 коммитов, которые просто делают глупые случайные (но обнаруживаемые в развертывании) изменения.Теперь, когда CI работает, я хочу «откатить» ветку deploy
до текущей master
.
Проблема в том, что у меня нет возможности использовать --force
для удаленного репо (разрешения).
Поэтому я хотел бы сделать коммит, который сделает ветви master
и deploy
идентичными.По сути, я хочу изменить текущие ветки deploy и master и добавить этот diff в качестве коммита для развертывания.Затем я могу объединить deploy
в master
, что не приведет к изменениям, и ветви снова будут синхронизированы.
Просто объединение master
в deploy
сейчас не будет работатьтак как изменения deploy
будут сохранены.
Меня не волнует история коммитов.
Я знаю, что могу ввести отдельный файл из другого коммита или ветви, выполнив git checkout <branch> <file>
.Что я в основном ищу, так это «проверяю ВСЕ файлы из другой ветки, но не переключаюсь на эту ветку».Тогда я могу просто сделать коммит и идти оттуда.