Какой самый простой способ отменить конкретную фиксацию:
- не в голове или в голове
- Был перенесен на пульт.
Потому что, если это не последний коммит,
git reset HEAD
не работает. И поскольку он был перенесен на пульт,
git rebase -i
и
git rebase --onto
вызовет некоторые проблемы в пульте дистанционного управления.
Более того, я действительно не хочу изменять историю. Если был плохой код, он был в истории и его можно увидеть. Я просто хочу, чтобы это было в рабочей копии, и я не против обратной фиксации слияния.
Другими словами, что такое Git эквивалент следующих команд svn:
svn merge -r 303:295 http://svn.example.com/repos/calc/trunk
, который удаляет все изменения с 295 до 302 путем обратного объединения всех изменений в этих ревизиях в качестве нового коммита.
svn merge -c -302 ^/trunk
, который отменяет фиксацию 302, конечно, добавляя другую фиксацию, которая отменяет объединение изменений из этой соответствующей фиксации.
Я подумал, что это должна быть довольно простая операция в Git и довольно распространенный вариант использования. Какой еще смысл атомных коммитов?
У нас есть постановка хранения , и все это для того, чтобы коммиты были абсолютно атомарными, разве вы не можете легко отменить один или несколько атомных коммитов?