Git發布 生成版本號 製作演示文稿

2021-06-17 01:20:15 字數 1787 閱讀 2197

**pro git中文版

因為git不會為每次提交自動附加類似』v123』的遞增序列,所以如果你想要得到乙個便於理解的提交號可以執行git describe命令。git將會返回乙個字串,由三部分組成:最

近一次標定的版本號,加上自那次標定之後的提交次數,再加上一段sha-1值of the commityou』re describing

$ git describe master

v1.6.2-rc1-20-g8c5b85c

標籤的提交上執行describe命令,只會得到這次標定的版本號,而沒有後面兩項資訊。

git describe命令只適用於有標註的標籤(通過-a或者-s選項建立的標籤),所以發行版的標籤都應該是帶有標註的,以保證git describe能夠正確的執行。你也可以把這個字串

作為checkout或者show命令的目標,因為他們最終都依賴於乙個簡短的sha-1值,當然如果這個sha-1值失效他們也跟著失效。最近linux核心為了保證sha-1值的唯一性,將位數由8位擴充套件到10位,這就導致擴充套件之前的git describe輸出完全失效了。

現在可以發布乙個新的版本了。首先要將**的壓縮包歸檔,方便那些可憐的還沒有使用git的人們。可以使用git archive:

$ git archive master --prefix='project/' | gzip > `git describe master`.tar.gz

$ ls *.tar.gz

v1.6.2-rc1-20-g8c5b85c.tar.gz

這個壓縮包解壓出來的是乙個資料夾,裡面是你專案的最新**快照。你也可以用類似的方法建立乙個zip壓縮包,在git archive加上--format=zip選項:

$ git archive master --prefix='project/' --format=zip > `git describe master`.zip
現在你有了乙個tar.gz壓縮包和乙個zip壓縮包,可以把他們上傳到你**上或者用e-mail發給別人。

是時候通知郵件列表裡的朋友們來檢驗你的成果了。使用git shortlog命令可以方便快捷的製作乙份修改日誌(changelog),告訴大家上次發布之後又增加了哪些特性和修復

了哪些bug。實際上這個命令能夠統計給定範圍內的所有提交;假如你上一次發布的版本是v1.0.1,下面的命令將給出自從上次發布之後的所有提交的簡介:

$ git shortlog --no-merges master --not v1.0.1

chris wanstrath (8):

add support for annotated tags to grit::tag

add packed-refs annotated tag support.

add grit::commit#to_patch

update version and history.txt

remove stray `puts`

make ls_tree ignore nils

tom preston-werner (4):

fix dates in history

dynamic version method

version bump to 1.0.2

regenerated gemspec for version 1.0.2

這就是自從v1.0.1版本以來的所有提交的簡介,內容按照作者分組,以便你能快速的發e-mail給他們。

git 生成版本號 git describe

如果使用git命令列工具,產生版本號?git describe如果符合條件的tag指向最新提交則只是顯示tag的名字 否則會有相關的字尾來描述該tag之後有多少次提交以及最新的提交commit id。不加任何引數的情況下,git describe 只會列出帶有注釋的tag git describe ...

CMake生成版本號

cmake生成版本號 金慶的專欄 原來的cmake需要用shell指令碼生成svn版本號,再作為cmake引數傳入。cmake呼叫指令碼示例 bin sh cmake.sh servercoderoot code server coderevnum svn info grep revision aw...

Git 標籤(版本號)

在git中打標籤非常簡單,首先,切換到需要打標籤的分支上 1 git branch 2 dev 3master 4 git checkout master 5 switched to branch master 然後,敲命令git tag就可以打乙個新標籤 git tag v1.0 可以用命令git...