137 votes

Trouver qui a commis est actuellement vérifié dans Git

Je suis au milieu d'un git bisect de la session.

Quelle est la commande pour savoir qui commit (hash SHA1) je suis actuellement sur? git status ne le permet pas.

Edit: je suppose que l'appelant git log et à la recherche, à la première entrée qui fonctionne?

142voto

Cupcake Points 22154

Vous avez au moins 5 différentes manières de voir la commettre actuellement vous avez vérifié dans votre copie de travail au cours d'une git bisect session (notez que les options 1 à 4 seront également fonctionner lorsque vous ne faites pas un coupent):

  1. git show.
  2. git log -1.
  3. Invite Bash.
  4. git status.
  5. git bisect visualize.

Je vais vous expliquer chaque option en détail ci-dessous.

Option 1: git show

Comme expliqué dans cette réponse à la question générale de savoir comment déterminer ce qui vous engage actuellement check-out (pas seulement lors de la git bisect), vous pouvez utiliser git show:

$ git show --oneline
a9874fd Merge branch 'epic-feature'

Option 2: git log -1

Vous pouvez aussi tout simplement faire git log -1 pour savoir qui commit, vous êtes actuellement sur.

$ git log -1 --oneline
c1abcde Add feature-003

Option 3: invite Bash

Dans Git version 1.8.3+ (ou était-ce une version antérieure?), si vous avez votre invite Bash configuré pour afficher le courant de la branche que vous avez vérifié dans votre copie de travail, alors il sera également vous montrer les commit courant que vous avez récupéré lors d'une coupent session ou lorsque vous êtes dans un "détaché" TÊTE de l'état. Dans l'exemple ci-dessous, j'ai actuellement c1abcde extrait:

# Prompt during a bisect
user ~ (c1abcde...)|BISECTING $

# Prompt at detached HEAD state 
user ~ (c1abcde...) $

Option 4: git status

Aussi que de Git version 1.8.3+ (et peut-être plus tôt, là encore pas sûr), l'exécution d' git status sera également vous montrer ce que s'engager que vous avez récupéré lors d'une coupent et quand vous êtes dans détaché de la TÊTE de l'état:

$ git status
# HEAD detached at c1abcde <== RIGHT HERE

Option 5: git coupent visualiser

Enfin, alors que vous êtes en train de faire un git bisect, vous pouvez aussi simplement utiliser des git bisect visualize ou de son haut-alias git bisect view pour le lancement gitk, de sorte que vous pouvez visualiser graphiquement qui vous engage sont, ainsi que les commits que vous avez marqués comme de la mauvaise et de la bonne mesure. Je suis sûr que cela existait bien avant la version 1.8.3, je ne sais pas de quelle version il a été introduit:

git bisect visualize 
git bisect view # shorter, means same thing

enter image description here

83voto

Mark Longair Points 93104

Il vous suffit de faire:

git rev-parse HEAD

Pour expliquer un peu plus loin: git rev-parse git est la commande de base pour l'interprétation de l'un quelconque des exotiques façons que vous pouvez spécifier le nom d'une validation et d' HEAD est une référence à votre commit courant ou de la branche. (En git bisect session, il pointe directement vers un commit ("isolé") plutôt qu'une branche.)

Sinon (et plus facile à retenir) serait de faire:

git show

... qui, par défaut, l'affichage de l'engager HEAD de points à. Pour une version plus concise, vous pouvez le faire:

$ git show --oneline -s
c0235b7 Autorotate uploaded images based on EXIF orientation

16voto

Alexander Gladysh Points 9554
$ git rev-parse TÊTE
273cf91b4057366a560b9ddcee8fe58d4c21e6cb

Mise à jour:

Sinon (si vous avez des tags):

(Bon pour nommer une version, pas très bon pour passer à l'arrière du git.)

$ git décrire
v0.1.49-localhost-ag-1-g273cf91

Ou (comme Mark l'a suggéré, inscription ici par souci d'exhaustivité):

$ git show --oneline -s
c0235b7 pivoter automatiquement les images téléchargées fondée sur l'orientation EXIF

2voto

asmeurer Points 13185

Utiliser git show, ce qui montre également le message de commit, et par défaut, le commit courant quand pas donné d'arguments.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X