Git относительные номера ревизий

Возможно ли (как-то) иметь в Git (локальных) относительных ревизионных (фиксированных) номерах, например, в Mercurial 0, 1, 2, 3,... вместо коротких хэшей?

Или что-нибудь более удобное для пользователя?

Ответ 1

Просто используйте:

  • master~10, чтобы получить 10-ю последнюю фиксацию на ветке master.
  • master^, чтобы получить вторую последнюю фиксацию на ветке master.
  • master^^, чтобы получить третью последнюю фиксацию на ветке master.

Их можно даже комбинировать: master^^~5^.

master может быть любым именем ветки (локальным или удаленным) или HEAD для ссылки на текущую фиксацию.

Вы можете использовать master^2 для получения второго родителя слияния.

Ответ 2

Вы всегда можете ссылаться на фиксацию с использованием префикса своего SHA-1-хеша, если он уникален. Например, если вы хотите проверить 980e3ccdaac54a0d4de358f3fe5d718027d96aae, вы можете использовать git checkout 980e, если никакие другие коммиты не начинаются с 980e.

Ответ 3

Я только что сделал что-то такое: dash-r. Это все еще грубо, но вы можете найти его полезным.

В принципе, это прокладка, которая может создать модифицированную версию основного журнала git с такими строками фиксации:

commit 4  id: a4d0892d38f4d72902e35a5b1ca11e602fffcef6

а затем ссылайтесь на эти числа, окружая вызов -r обратными окнами:

git diff `-r 2`

(Предположим, вы установили его в свой путь с именем "-r". Я делаю это, поскольку он выглядит как обычный параметр, если я игнорирую обратные ссылки.)

Он может обрабатывать диапазоны и отрицательные числа:

git diff `-r 2..-2`

Git отсутствие номеров ревизий было для меня главным препятствием при нагревании до Git. Видение SHA-хэшей в git log нарушает мой поток. Поэтому я надеюсь, что это поможет нам обоим.

Ответ 4

Короткий ответ: Нет Да.

Однако вы можете использовать git -tag. Например, чтобы пометить ваш последний коммит как версию 1.2, выполните следующие действия:

git tag -a v1.2 HEAD

На этой странице объясняется, как использовать его для управления версиями: http://grinninggecko.com/commit-version-numbers-with-git/