Задать вопрос
@mpvcluuuuub

Разница между @~ и @^?

В чем разница между @^ и @~ , как я это могу использовать? Например при reset или rebase
  • Вопрос задан
  • 126 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Эти символы абсолютно идентичны. Используются для относительных ссылок назад в историю от какой либо точки.
Например git reset HEAD^3 переключит текущую ветку на три коммита назад относительно текущего состояния.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Lynn
@Lynn
nginx, js, css
Разница описана в документации.

В частности @^ и @~ действительно совершенно случайно выбирают одно и тоже, но у них разный смысл.

@ в данном контексте синоним HEAD.
^ (=== ^1) — выбрать первого родителя коммита. У большинства коммитов никакого другого и нет, так что числа отличные от 1 имею смысл только для merge-коммитов.
~ (=== ~1) — выбрать родителя (если их несколько, то выбирается первый).

Но, например, @^3 выбрать третьего родителя у коммита. В 99.99% случаем это будет ошибка, потому что в живой природе больше двух родителей практически не бывает.
А вот @~3 означает выбрать «пра-дедушку» коммита и это эквивалентно записи @^1^1^1 (или @^^^).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽