Сброс временных фиксаций, изменение и повторное выполнение предыдущих фиксаций

#git

Вопрос:

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

Первый шаг, который я могу придумать, это:

 git reset --soft HEAD~n  

Но как я могу переделать эти коммиты, чтобы создать новый коммит на основе исходного ЗАГОЛОВКА?

введите описание изображения здесь

Комментарии:

1. Я не уверен, что понимаю вопрос. Не могли бы вы, пожалуйста, попытаться уточнить?

2. Совершаете ли вы это так, как обычно?

3. Если только ваша IDE не вмешивается во что-то, git reset --soft а затем git commit уже делает то, что, как я думаю, вы хотите. (У меня были некоторые проблемы с пониманием того, о чем вы спрашивали.)

Ответ №1:

Вы хотите повторить фиксации, которые вы сбросили?

В таком случае, действуйте так

 git reflog  

и найдите сообщение о последней фиксации перед тем, как выполнить сброс.

Затем сбросьте этот хэш.

 git reset 147ad0  

или что-то в этом роде

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

Комментарии:

1. 1, так как это правильный ответ. Тем не менее, правильный ответ: «ваш рабочий процесс нарушен, погуглите, в чем проблема AB».