Я сделал несколько нестабильных изменений коммита, которые также были выдвинуты.Мое воображаемое дерево коммитов выглядит следующим образом:
A -> B -> C -> D
Коммит "A" был последним стабильным коммитом.Обнаружив, что более поздние изменения были нестабильными, я вернулся к последней стабильной ревизии, используя
git checkout A
Затем я создал новую ветку "stable" с
git checkout -b stable
И продолжил работу в этой ветке.Теперь я хочу объединить с master, но я не хочу удалять изменения, которые у меня были ранее, поэтому я хотел добавить их в новую ветку вместо использования revert.Следуя совету в этой ветке , я сделал следующее из основной ветки:
нестабильная ветка git
сброс git --hard HEAD ~ 3
Так что теперь HEAD указывает на фиксацию A, и новая ветка "unstable" начинается с фиксации B. Но я хочу объединить мои стабильные изменения (в ветке "stable"), поэтому я использую
git merge stable
И оно успешно завершается без конфликтов, и HEAD теперь указывает на последнюю ревизию с объединенными стабильными изменениями. Теперь я могу выдвинуть все ветки в свой репозиторий, кромемастер, который сообщает об ошибке не-перемотки вперед.Если я потяну, он, похоже, вытянет все нестабильные изменения, которые у меня были ранее.
Похоже, что большое количество сообщений похоже на это, но кажется, что в основном люди хотят просто использовать revert, чтобы отменитькоммиты у них были, тогда как я хочу сохранить свои нестабильные коммиты, но в отдельной ветке, как сейчас.Что я делаю неправильно?