How to get the last commit ID of a remote repo using curl-like command?

前端 未结 6 839
我寻月下人不归
我寻月下人不归 2020-12-12 19:38

I want to get the last commit ID of the remote git repo.

The command git rev-parse HEAD works for a locally-cloned git repo, but I want

相关标签:
6条回答
  • 2020-12-12 19:59

    You can use git ls-remote for this. Because I get a 'Unauthorized access for repository apiapp.git' I use as example torvalds linux-repo.

    $ git ls-remote --heads git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
    6d15ee492809d38bd62237b6d0f6a81d4dd12d15        refs/heads/master
    
    0 讨论(0)
  • 2020-12-12 20:00

    I think what you want is this:

    git ls-remote $URL HEAD
    

    If HEAD doesn't exist in the remote repository, then you likely want:

    git ls-remote $URL refs/heads/master
    

    Note that in the first instance, HEAD is going to point to the default branch to checkout in the repository. You need to be sure that's the branch you want, or just use the second form and specify the one you want (replace refs/heads/master with the name of the branch you want: refs/heads/BRANCH_NAME.

    0 讨论(0)
  • 2020-12-12 20:02

    Simplest way I use:

    git rev-parse origin/develop
    
    0 讨论(0)
  • 2020-12-12 20:04

    Another way, without using git log:

    git rev-parse HEAD

    0 讨论(0)
  • 2020-12-12 20:24

    try this command

    git log --format="%H" -n 1
    
    0 讨论(0)
  • 2020-12-12 20:24

    my answer would not help the OP because he's not on github, but I think I would mention it anyway because it uses curl, or wget, as the OP requested.

    wget -qO- http://api.github.com/repos/Ghini/ghini.desktop/commits/ghini-1.0

    Ghini is my repo, ghini.desktop is my repository, ghini-1.0 is the branch I'm interested in. Replace them to fit your case.

    the JSON answer is a dictionary, and the OP was interested in its sha field, but it contains a lot more information.

    0 讨论(0)
提交回复
热议问题