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

Какой самый простой способ отменить конкретный коммит, это:

не в голову или головуБыл сдвинут в пульт.

Потому что, если это не последний коммит,

git reset HEAD

не работает И потому, что он был перенесен на пульт,

git rebase -i

а также

git rebase --onto

вызовет некоторые проблемы в пульте.

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

Другими словами, что такоеГит эквивалент следующих команд svn:

svn merge -r 303:295 http://svn.example.com/repos/calc/trunk

который удаляет все изменения с 295 до 302 путем обратного объединения всех изменений в этих ревизиях в качестве нового коммита.

svn merge -c -302 ^/trunk

который отменяет фиксацию 302, конечно, добавляя еще один коммит, который отменяет объединение изменений из этого соответствующего коммита

Я думал, что это должна быть довольно простая операция в Git и довольно распространенный вариант использования. Какой еще смысл атомных коммитов?

У нас есть постановкаприпрятать и все это для того, чтобы коммиты были абсолютно атомарными, не могли бы вы легко отменить один или несколько атомных коммитов?

Ответы на вопрос(3)

Ваш ответ на вопрос