Команда Git для відображення ідентифікатора приєднання HEAD?


251

Яку команду можна використовувати для роздрукування ідентифікатора фіксації HEAD?

Це те, що я роблю вручну:

$ cat .git/HEAD
ref: refs/heads/v3.3
$ cat .git/refs/heads/v3.3
6050732e725c68b83c35c873ff8808dff1c406e1

Але мені потрібен скрипт, який може надійно передавати висновок якоїсь команди в текстовий файл таким чином, щоб текстовий файл містив саме ідентифікатор фіксації HEAD (нічого більш-менш, і не лише ref). Хтось може допомогти?


У мене є подібне питання і раніше. І це було добре відповів тут: stackoverflow.com/questions/44994626 / ...
smwikipedia

Відповіді:


451

Використовуйте команду:

git rev-parse HEAD

Для короткої версії:

git rev-parse --short HEAD

34
Для тих, хто шукає коротку версію хешу, git rev-parse --short HEADбуде працювати.
mgarciaisaia

45
git log -1

для лише виконувати ідентифікатор

git log | head -n 1 

Дякую, це легко
eC Droid

15

Стара нитка, ще для подальшої довідки ... :) навіть наступні роботи

git show-ref --head

за замовчуванням HEAD відфільтровано. Будьте уважні до дотримання, хоча; множина "голів" із "s" в кінці. Наступна команда показує гілки в розділі "refs / heads"

 git show-ref --heads

4
використовуючи ці команди в (великому) git repo, я отримую два рядки з git show-ref --headsі 6290 рядків від git show-ref --head. тому якщо ви хочете лише один хеш, це може бути не запланованим результатом.
Ремігіус Стардер

7

Ви можете вказати git logпараметри для відображення лише останньої комісії -1та формату, що включає лише ідентифікатор комісії, наприклад, такий:

git log -1 --format=%H

Якщо ви віддаєте перевагу скороченому ідентифікатору комісії:

git log -1 --format=%h



1

Згідно з https://git-scm.com/docs/git-log , для отримання більш гарного виводу в консолі можна використовувати аргумент --decorate команди git-log :

git log --pretty=oneline --decorate

надрукує:

2a5ccd714972552064746e0fb9a7aed747e483c7 (HEAD -> master) New commit
fe00287269b07e2e44f25095748b86c5fc50a3ef (tag: v1.1-01) Commit 3
08ed8cceb27f4f5e5a168831d20a9d2fa5c91d8b (tag: v1.1, tag: v1.0-0.1) commit 1
116340f24354497af488fd63f4f5ad6286e176fc (tag: v1.0) second
52c1cdcb1988d638ec9e05a291e137912b56b3af test

0

git rev-parse --abbrev-ref HEAD


1
Це не відображає ідентифікатор комісії, а скоріше будь-які назви (наприклад, гілки чи теги), пов’язані з комітом. Це не те, чого хотів оригінальний користувач.
Асфанд Казі

0

Ви можете використовувати цю команду

$ git rev-list HEAD

Ви також можете скористатися командою headUnix, щоб показати останні новини, n HEADяк-от

$ git rev-list HEAD | head - 2


0

Можна використовувати

git log -g branchname

щоб побачити git reflogінформацію, відформатовану як git logрезультат

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.