How do I get Git's latest stable release version number?

I’m writing a script:

To get Git’s latest stable release version number, I do:

  • Better way of getting a GIT commit message by short hash?
  • Ever need to parse the svn log for files committed by a particular user since a certain date?
  • Bash alias of an svn command piped to awk
  • How to list the last occurance of a specific string in Terminal
  • How can I find all the merges that had conflicts in a Git repository?
  • How do I view all ignored patterns set with svn:ignore recursively in an SVN repository?
  • LSR_NUM=$(curl -silent | sed -n '/id="ver"/ s/.*v\([0-9].*\)<.*/\1/p')

    2 Questions:

    1. Refactor my code: Is there a better way programmatically to do this?

    2. This works now, but it’s brittle: if
      the web page at
      changes, the line above may stop

      PHP has a reliable URL for getting
      the latest release version:
      Is there a site which simply outputs the latest stable version numbers of php and mysql?

      Is there something like this for
      Git? This comes close:

  • Is it a good practise to do version control from outside the IDE?
  • GitFlow: safely merge develop changes to a feature branch
  • remove branches not on remote
  • Git commit lost after reset --hard. Not found by fsck, not in reflog
  • jspm install can't download packages from npm and github due to proxy settings
  • Git sparse checkout with exclusion
  • 5 Solutions collect form web for “How do I get Git's latest stable release version number?”

    I’d just do this:

    git ls-remote --tags git:// | ...

    The location of the public repository is pretty much guaranteed to stay fixed, so I wouldn’t really consider it brittle. The output of git-ls-remote will pretty definitely not change either.

    The version number should be the last tag; you could grab it with something like this:

    git ls-remote ... | tail -n 1 | sed 's@.*refs/tags/\(.*\)\^{}@\1@'

    I use for this.

    latest_git_version=$(curl -s | grep "class='version'" | perl -pe 's/.*?([0-9\.]+)<.*/$1/')
    echo $latest_git_version 

    Very useful when you are on a new box and want to install latest stable git like so:

    cd /tmp
    tar xzf git-${latest_git_version}.tar.gz
    cd git-${latest_git_version}
    ./configure && make && sudo make install

    Maybe this would also be a good fallback for or vice versa.

    I generally just use the maint branch. It only gets commits that have been rigorously tested in other branches like pu or next. It is generally very stable and at any given time is actually likely to contain less bugs than the latest official release.

    I am using this on freebsd/bash:

    git ls-remote --tags | tail -n 1 | sed 's/.*refs\/tags\///g'

    I use and remove “-rc” versions due to reponses unstably.

    curl -s | grep -P "/git/git/releases/tag/v\d" | grep -v rc | awk -F'[v\"]' '{print $3}' | head -1

    If you’d like to check the result in bash;

    GIT_INSTALL=$(curl -s | grep -P "/git/git/releases/tag/v\d" | grep -v rc  |  awk -F'[v\"]' '{print $3}' | head -1)
    if [[ "$GIT_INSTALL" =~ ^[0-9]*?\.[0-9]*?\.[0-9] ]]
      echo "Failed to get the latest stable git version. Quit." 
    Git Baby is a git and github fan, let's start git clone.