Отменить старый коммит, который был принудительным, и сохранить только части изменений

#git

#git

Вопрос:

Я хочу вернуться к старому коммиту.
Части старого коммита, которые я хочу сохранить, и части, которые я хочу удалить.
После удаления части коммита, которая мне не нужна, я хочу вернуться к началу главной ветки.

Возможно ли это?

Ответ №1:

Отказ от ответственности: Я не могу точно сказать из вашего описания, что вы хотите сделать. Ниже приведены две наиболее вероятные интерпретации, которые я мог бы придумать. Расскажите нам больше, и я отредактирую.


Если вы хотите изменить коммит в прошлой истории, это большой и очень неудобный процесс, включающий перезапись всей истории с измененного коммита. Чрезвычайно проблематично, когда вы делитесь репозиторием с кем угодно, и даже когда вы один, совсем не легкая операция. Дайте нам знать, так ли это, но я возьму на себя второй случай.


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

 git cherry-pick -n <commitHash>
  

Он еще не создаст коммит на конце текущей ветки, он внесет в рабочее дерево изменения из этого коммита, и у вас будет возможность добавить / удалить / модифицировать все, что вы хотите, и затем зафиксировать.

Ответ №2:

git revert вернул все изменения в моем старом коммите. Он не удалил изменения, просто вы зафиксировали мои изменения. Оттуда я смог удалить изменения, которые я не хотел. Таким образом, возврат является частичным возвратом.

git отменить