Что это самый простой способ, чтобы отменить конкретный коммит, который является:Отмена конкретной фиксации в Git, который был толкаемом к удаленным операциям РЕПО
- не в голове или голове
- был отодвинут на пульт дистанционного управления.
Потому что, если это не последний коммит,
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 и довольно распространенный вариант использования. В чем еще смысл атомных коммитов?
У нас есть постановка stashing и все, чтобы коммиты были абсолютно атомарными, не могли бы вы легко отменить одну или несколько из этих атомных коммитов?
и использовать ключ -n, если вы хотите, чтобы код вернулся, но не был автоматически зафиксирован снова – jaygooby
Что делает опция «m»? Я попробовал git revert 8213f7d, но получил это вместо: ошибка: Commit 8213f7dad1ed546b434a0d8a64cb783b530a5a30 - это слияние, но опция no -m не указана. fatal: revert failed – Malcolm
'git help revert' говорит, что он позволяет вам выбрать, с каким родителем слияния вы хотите вернуться. Вы не можете вернуть слияние без выбора родителя. В документации указывается https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt –