在 github 上, tag 會自動標記為 release, 可方便的以 .zip 或 .tar.gz 的格式下載.

但如果想要的版本沒有加 tag 的話怎麼下載? 答案就在下面的 link
https://developer.github.com/v3/repos/contents/#get-archive-link

格式為
https://github.com/:owner/:repo/:archive_format/:ref

其中 :archive_format 可以是 zipball 或 tarball. :ref 可以是 branch, tag 或 commit ID.

以 zfsonlinux 為例, 項目主頁在此
https://github.com/zfsonlinux/zfs

zfsonlinux 代表 :owner, zfs 代表 :repo, 如果想以 .tar.gz 格式下載 commit b23d54 這個 commit, URL 如下
https://github.com/zfsonlinux/zfs/tarball/b23d54

下載的檔名如下
zfsonlinux-zfs-zfs-0.6.5-29-gb23d543.tar.gz

  • 0.6.5 代表 b23d54 是基這個 tag 修改來的
  • gb23d543 代表 commit ID
  • 23 代表 gd23d5430.6.5 間差了 23 個 commit

更詳細的說明可參考 git-describe.