Требуемая вами команда: git revert
.Он создает коммит для отмены другого коммита:
git revert <SHA1 C>
Затем вы можете отправить его в главный репозиторий, и изменение, внесенное коммитом, будет отменено, при этом оставляя сам коммит (и последующую историю) неповрежденный:
- A - B - C - D - E - ... - C' - ...
Чтобы продолжить работу на его основе самостоятельно, вы можете затем отменить возврат или выбрать исходную фиксацию - надеюсь, в локальной ветке, чтобы случайно не нажать ее!