В Git есть ли способ получить «дружественное» имя для произвольного коммита? - PullRequest
19 голосов
/ 27 мая 2009

В Git существует множество способов ссылки на коммит, включая полный хэш SHA или сокращенную форму хэша (скажем, первые 6 символов или около того). Вы также можете называть коммиты, используя «дружественный» синтаксис, такой как HEAD, HEAD ^, HEAD ^^, HEAD ~ 3 и т. Д.

Учитывая произвольный коммит в хеш-форме SHA, есть ли в Git инструмент для поиска "дружественного" имени для указанного коммита?

Если я использую git-show-branch, я получаю список ревизий в «дружественной» форме, поэтому я чувствую, что должен быть способ ... Я просто не могу найти инструмент для этого.

Ответы [ 2 ]

19 голосов
/ 27 мая 2009

Вы можете использовать "git name-rev", чтобы получить форму, о которой вы спрашиваете. Одна проблема с этой формой состоит в том, что, будучи относительным к ветви, это не постоянное имя. Таким образом, альтернативой является «git description», которая выдает альтернативное понятное имя на основе того, насколько далеко впереди тега находится данный коммит.

Например:

srh@devo16:~/src/git <master>$ git name-rev 3cd7388
3cd7388 master~2

Но потом, после того как я сделаю "git pull", master ~ 2 может означать что-то еще. Для сравнения:

srh@devo16:~/src/git <master>$ git describe 3cd7388
v1.6.3.1-153-g3cd7388

Теперь "v1.6.3.1-153-g3cd7388" является постоянным именем. Конечно, он все еще немного длинный (хотя вы можете сократить бит хеша в конце, указав, например, «--abbrev = 4»), но он сообщает, что 3cd7388 - это 153 изменения после версии 1.6.3.1.

4 голосов
/ 27 мая 2009

Попробуйте git describe:

$ git describe --all --contains 90de2680dc54c0d600b0694bd175bd09357a8dba
master~2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...