2016-11-10 11 views
0

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

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

Отсюда:

  • Изменить FileSensitive - ++
  • Изменение File1
  • Изменить File2
  • Новый file3
  • Новый file4

Для этого:

  • Изменить File1
  • Изменить File2
  • Нового file3
  • Нового file4

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

+0

Вы можете переустановить свое репо на предыдущий идентификатор фиксации. Просто следуйте следующему: http://stackoverflow.com/questions/3639115/reverting-to-a-specific-commit-based-on-commit-id -with-git – Hackerman

+0

http://stackoverflow.com/questions/34519665/how-to-move-head-back-to-a-previous-location-detached-head/34519716#34519716 – CodeWizard

ответ

0
  1. git --soft reset HEAD^, чтобы отменить последнее совершение, сохраняя все изменения, сделанные последним фиксатором в индексе.
  2. git checkout HEAD <path to FileSensitive> чтобы отключить и отказаться от изменения на FileSensitive. (Обратите внимание, что изменение в FileSensitive теряется этой командой.)
  3. git commit и git push -f для обновления удаленного репо.