В чем разница между возвратом <hash>и возвратом <head>? - PullRequest
0 голосов
/ 03 марта 2020

У меня есть 3 коммита, отправленных в мой репозиторий.

  • Commit3
  • Commit2
  • Commit1

Итак, если я попытаюсь чтобы вернуть Commit2 с помощью команды git revert commit2Hash, он выдаст предупреждение для разрешения конфликтов до слияния.

Но если я попытаюсь вернуть Commit2 с помощью команды git revert HEAD~1 он вернет Commit2 напрямую, без какого-либо конфликта.

Пожалуйста, почему это происходит?

Ответы [ 2 ]

2 голосов
/ 03 марта 2020

HEAD~0 - это ваш последний коммит (он же просто HEAD)

HEAD~2 представляет га sh второго коммита с нуля.

Итак, наберите git revert HEAD~2 Вы пытаетесь вернуть Commit1. В этом разница.

0 голосов
/ 04 марта 2020

Вывод git log без --graph всегда линейный, но реальная история может быть параллельной. Когда git log печатает

commit3
commit2
commit1

HEAD~1 может быть эквивалентно commit1 вместо commit2. Используйте git log --oneline --graph --decorate, чтобы увидеть реальную историю. Это происходит, когда commit2 и commit1 расходятся и commit3 является коммитом слияния.

...