Command to get latest Git commit hash from a branch

前端 未结 6 819
春和景丽
春和景丽 2021-01-30 04:39

How can I check with the command line the latest commit hash of a particular Git branch?

6条回答
  •  无人及你
    2021-01-30 05:27

    Use git ls-remote git://github.com//.git. For example, my trac-backlog project gives:

    :: 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^{}
    

    Just grep for the one you need and cut it out:

    :: git ls-remote git://github.com/jszakmeister/trac-backlog.git | \
       grep refs/heads/master | cut -f 1
    5d6a3c973c254378738bdbc85d72f14aefa316a0
    

    Or, you can specify which refs you want on the command line and avoid the grep with:

    :: git ls-remote git://github.com/jszakmeister/trac-backlog.git refs/heads/master | \
       cut -f 1
    5d6a3c973c254378738bdbc85d72f14aefa316a0
    

    Note: it doesn't have to be the git:// URL. It could be https:// or git@github.com: too.

    Originally, this was geared towards finding out the latest commit of a remote branch (not just from your last fetch, but the actual latest commit in the branch on the remote repository). If you need the commit hash for something locally, the best answer is:

    git rev-parse branch-name
    

    It's fast, easy, and a single command. If you want the commit hash for the current branch, you can look at HEAD:

    git rev-parse HEAD
    

提交回复
热议问题