Git: объединение изменений после ветвления перед возвратом - PullRequest
3 голосов
/ 14 декабря 2011

Я запутался.

Я внес изменение в реструктуризацию, которое значительно уменьшило функциональность до master. (Я признаю, что это была ошибка.)

Это начало вызывать проблемы, потому что было невозможно использовать программу с примененным этим изменением, но я уже совершил дальнейшее, не связанное с этим улучшение master.

Итак, я отменил изменение реструктуризации на master и запустил новую ветку (скажем, restructure), основанную на коммите до восстановления.

Проблема в том, что с тех пор были сделаны дополнительные ценные коммиты к master, которые я хотел бы добавить к restructure, чтобы облегчить его разработку. Но git merge пытается применить возврат первоначальной реструктуризации - упс!

Я не уверен, что делать сейчас, и я чувствую, что плохое решение сейчас может значительно усложнить слияние до master позже.

Чтобы усложнить ситуацию, ветвь restructure была перемещена. Тем не менее, я не против использовать git push --force, если это устранит весь этот беспорядок; с тех пор только несколько человек извлекли хранилище.

Я принимаю, что истинное решение этого вопроса может не дать ответа на заданный вопрос - это определенно похоже на сценарий XY Problem - но мне пришлось поместить что-то в название :) 1031 *

Примечание: Я понимаю, что все это является симптомом плохого рабочего процесса git, и это, безусловно, достаточный стимул для меня, чтобы делать что-то более правильное в будущем. Тем не менее, я не могу задним числом не сделать неправильную вещь, поэтому моя проблема остается:)

Ответы [ 2 ]

4 голосов
/ 14 декабря 2011

Так как вы не выдвинули мастер (?), И даже если у вас есть все в порядке, чтобы принудительно протолкнуть и переписать историю, вы можете просто git rebase -i в мастере и удалить сам коммит реструктуризации, а не возвращать и затем создать1002 * ветвь от самого мастера (поскольку вы все равно собираетесь объединиться) и работа над ним.

3 голосов
/ 14 декабря 2011

Вы можете использовать git cherry-pick, чтобы выбрать только коммиты, которые вы хотите передать новой ветке от master.Это приведет только к изменениям в указанном хэш-теге.Проверьте справочную страницу для git-cherry-pick.

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