Comment puis-je vérifier avec la ligne de commande le dernier hash de commit d’une twig git particulière?
Utilisez git ls-remote git://github.com/
. Par exemple, mon projet trac-backlog donne:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git 5d6a3c973c254378738bdbc85d72f14aefa316a0 HEAD 4652257768acef90b9af560295b02d0ac6e7702c refs/heads/0.1.x 35af07bc99c7527b84e11a8632bfb396823326f3 refs/heads/0.2.x 5d6a3c973c254378738bdbc85d72f14aefa316a0 refs/heads/master 520dcebff52506682d6822ade0188d4622eb41d1 refs/pull/11/head 6b2c1ed650a7ff693ecd8ab1cb5c124ba32866a2 refs/pull/11/merge 51088b60d66b68a565080eb56dbbc5f8c97c1400 refs/pull/12/head 127c468826c0c77e26a5da4d40ae3a61e00c0726 refs/pull/12/merge 2401b5537224fe4176f2a134ee93005a6263cf24 refs/pull/15/head 8aa9aedc0e3a0d43ddfeaf0b971d0ae3a23d57b3 refs/pull/15/merge d96aed93c94f97d328fc57588e61a7ec52a05c69 refs/pull/7/head f7c1e8dabdbeca9f9060de24da4560abc76e77cd refs/pull/7/merge aa8a935f084a6e1c66aa939b47b9a5567c4e25f5 refs/pull/8/head cd258b82cc499d84165ea8d7a23faa46f0f2f125 refs/pull/8/merge c10a73a8b0c1809fcb3a1f49bdc1a6487927483d refs/tags/0.1.0 a39dad9a1268f7df256ba78f1166308563544af1 refs/tags/0.2.0 2d559cf785816afd69c3cb768413c4f6ca574708 refs/tags/0.2.1 434170523d5f8aad05dc5cf86c2a326908cf3f57 refs/tags/0.2.2 d2dfe40cb78ddc66e6865dcd2e76d6bc2291d44c refs/tags/0.3.0 9db35263a15dcdfbc19ed0a1f7a9e29a40507070 refs/tags/0.3.0^{}
Juste grep pour celui dont vous avez besoin et découpez-le:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git | \ grep refs/heads/master | cut -f 1 5d6a3c973c254378738bdbc85d72f14aefa316a0
Ou, vous pouvez spécifier quels refs vous voulez sur la ligne de commande et éviter le grep avec:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git refs/heads/master | \ cut -f 1 5d6a3c973c254378738bdbc85d72f14aefa316a0
Note: il ne doit pas nécessairement s’agir de l’URL git://
, il peut s’agir de https://
ou de git@github.com:
aussi.
git log -n 1 [branch_name]
branch_name
(peut être une twig distante ou locale) est facultatif. Sans branch_name
, il affichera le dernier commit sur la twig en cours.
Par exemple:
git log -n 1 git log -n 1 origin/master git log -n 1 some_local_branch git log -n 1 --pretty=format:"%H" #To get only hash value of commit
Essayez d’utiliser git log -n 1
après avoir effectué un nom de git checkout branchname
. Cela montre le hachage, l’auteur, la date et le message de validation pour la dernière validation.
Effectuez d’abord un git pull origin/branchname
pour vous assurer que votre repo local correspond à l’amont.
Si vous ne souhaitez peut-être voir qu’une liste des validations de votre twig locale sur la twig distante, procédez comme suit:
git fetch origin git cherry localbranch remotebranch
Ceci listera tous les hachages des commits que vous n’avez pas encore fusionnés dans votre twig locale.
vous pouvez git fetch nameofremoterepo
, puis git log
et personnellement, gitlog
pour git log --graph --oneline --pretty --decorate --all
. essayez et voyez si cela vous convient
Dans un commentaire que vous avez écrit
Je veux montrer qu’il y a une différence entre repo local et github
Comme nous l’avons déjà mentionné dans une autre réponse, vous devez au préalable faire une git fetch origin
. Ensuite, si la télécommande est en avance sur votre twig actuelle, vous pouvez répertorier tous les commits entre votre succursale locale et la télécommande avec
git log master..origin/master --stat
Si votre agence locale est en avance:
git log origin/master..master --stat
--stat
affiche également une liste des fichiers modifiés.
Si vous souhaitez lister explicitement les ajouts et les suppressions, utilisez git diff
:
git diff master origin/master
Notez que lorsque vous utilisez l’option “git log -n 1 [nom_twig]”. -n ne renvoie qu’une seule ligne de journal mais l’ordre dans lequel il est renvoyé n’est pas garanti. Voici l’extrait de la page de manuel de git-log
..... ..... Commit Limiting Besides specifying a range of commits that should be listed using the special notations explained in the description, additional commit limiting may be applied. Using more options generally further limits the output (eg --since= limits to commits newer than , and using it with --grep= further limits to commits whose log message has a line that matches ), unless otherwise noted. Note that these are applied before commit ordering and formatting options, such as --reverse. - -n ..... .....