Comando Git para exibir o ID de confirmação HEAD?


250

Que comando posso usar para imprimir o ID de confirmação do HEAD?

Isto é o que estou fazendo à mão:

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

Mas preciso de um script que possa canalizar de maneira confiável a saída de algum comando para um arquivo de texto, de modo que o arquivo de texto contenha exatamente o ID de confirmação do HEAD (nada mais ou menos, e não apenas uma referência). Alguém pode ajudar?


Eu tenho uma pergunta semelhante antes. E foi bem respondida aqui: stackoverflow.com/questions/44994626/…
smwikipedia

Respostas:



45
git log -1

apenas para confirmar o ID

git log | head -n 1 

Obrigado, é fácil
eC Droid

15

Tópico antigo, ainda para referência futura ... :) mesmo após trabalhos

git show-ref --head

por padrão, HEAD é filtrado. Tenha cuidado ao seguir; "cabeças" plurais com um 's' no final. O comando a seguir mostra ramificações em "refs / heads"

 git show-ref --heads

4
usando esses comandos em um repositório git (grande), recebo duas linhas git show-ref --headse 6290 linhas git show-ref --head. portanto, se você quiser apenas um único hash, talvez esse resultado não seja o pretendido.
Remigius Stalder

7

Você pode especificar git logopções para mostrar apenas o último commit -1, e um formato que inclua apenas o ID do commit, como este:

git log -1 --format=%H

Se você preferir o ID de confirmação reduzido:

git log -1 --format=%h


5

Jogue com o Bash:

git show HEAD | sed -n 1p | cut -d " " -f 2

1

De acordo com https://git-scm.com/docs/git-log , para obter uma saída mais bonita no console, você pode usar o argumento --decorate do comando git-log :

git log --pretty=oneline --decorate

irá imprimir:

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
Isso não mostra o ID da confirmação, mas os nomes (como ramificações ou tags) associados à confirmação. Não é isso que o usuário original queria.
Asfand Qazi 8/11

0

Você pode usar este comando

$ git rev-list HEAD

Você também pode usar o headcomando Unix para mostrar os n HEADcommits mais recentes, como

$ git rev-list HEAD | head - 2


0

Você pode usar

git log -g branchname

para ver git refloginformações formatadas como a git logsaída

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.