Git 標(biāo)簽 tags 和 GitHub 版本 releases

一抑堡、Git 標(biāo)簽 tags

標(biāo)簽 tag 是某個(gè)提交 commit 的指針涌矢,一個(gè)提交可以有多個(gè)標(biāo)簽掖举。

1.1 git tag 查看倉庫中所有分支的全部標(biāo)簽:

mcdx@ubuntu:~/git/flasky$ git tag
10a
10b
10c
10d
11a
11b
11c
11d
11e
11f
11g
11h
    ... ...
    ... ...

如果一個(gè)版本在多個(gè)分支上都有,那么在多個(gè)分支上都能看到這個(gè)標(biāo)簽娜庇。本地標(biāo)簽存在倉庫主目錄中的 .git/refs/tags 目錄下塔次。

1.2 git show [標(biāo)簽名] 查看某個(gè)標(biāo)簽的詳情,舉例查看標(biāo)簽 16a 的詳情:

mcdx@ubuntu:~/git/flasky$ git show 16a
commit 59499244f764a67ba6045c3f6ad9dfdb95068a9c
Author: Miguel Grinberg <miguel.grinberg@gmail.com>
Date:   Tue Jul 18 07:55:50 2017 -0700

    Chapter 16: Logging of slow database queries (16a)

diff --git a/app/main/views.py b/app/main/views.py
index 68acd9c..5b30b24 100644
    ... ...
    ... ...

1.3 git tag [標(biāo)簽名] [版本號(hào)] 對(duì)某個(gè)版本號(hào)創(chuàng)建標(biāo)簽名秀,該命令創(chuàng)建的是輕標(biāo)簽励负,對(duì)當(dāng)前版本創(chuàng)建標(biāo)簽時(shí)可省略版本號(hào):

mcdx@ubuntu:~/git/jpt$ git tag
haha1.1
mcdx@ubuntu:~/git/jpt$ git tag haha1.2
mcdx@ubuntu:~/git/jpt$ git tag
haha1.1
haha1.2

一個(gè)版本號(hào)能否創(chuàng)建多個(gè)標(biāo)簽?可以的匕得,雖然沒啥實(shí)際意義:

mcdx@ubuntu:~/git/jpt$ git tag haha1.3
mcdx@ubuntu:~/git/jpt$ git tag
haha1.1
haha1.2
haha1.3

1.4 git tag [標(biāo)簽名] -m '[備注信息]' [版本號(hào)] 加一個(gè) -m 參數(shù)創(chuàng)建備注標(biāo)簽或者叫附注標(biāo)簽继榆,同樣對(duì)當(dāng)前版本創(chuàng)建標(biāo)簽時(shí)可省略版本號(hào):

mcdx@ubuntu:~/git/jpt$ git tag xixi1.1 -m 'fuzhubiaoqian'
mcdx@ubuntu:~/git/jpt$ git tag
haha1.1
haha1.2
haha1.3
xixi1.1
mcdx@ubuntu:~/git/jpt$ git show xixi1.1 
tag xixi1.1
Tagger: Manchangdx <1195581533@qq.com>
Date:   Wed Feb 13 13:49:39 2019 +0800

fuzhubiaoqian

commit ff4e669a7aad849d5379e874390be98fcc026feb
Author: LouPlus <34020606+LouPlus@users.noreply.github.com>
    ... ...
    ... ...

1.5 git tag -d [標(biāo)簽名] 刪除標(biāo)簽:

mcdx@ubuntu:~/git/jpt$ git tag
haha1.1
haha1.2
haha1.3
xixi1.1
mcdx@ubuntu:~/git/jpt$ git tag -d haha1.3
已刪除標(biāo)簽 'haha1.3'(曾為 ff4e669)
mcdx@ubuntu:~/git/jpt$ git tag
haha1.1
haha1.2
xixi1.1

1.6 git push origin [標(biāo)簽名] 推送標(biāo)簽到遠(yuǎn)程倉庫,也就是 GitHub 上:

mcdx@ubuntu:~/git/jpt$ git push origin haha1.1
Username for 'https://github.com': Manchangdx
Password for 'https://Manchangdx@github.com': 
對(duì)象計(jì)數(shù)中: 3, 完成.
壓縮對(duì)象中: 100% (2/2), 完成.
寫入對(duì)象中: 100% (3/3), 291 bytes | 0 bytes/s, 完成.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/LouPlus/jpt
 * [new tag]         haha1.1 -> haha1.1

這個(gè)標(biāo)簽 haha1.1 是本地分支 dev 中的最新提交的標(biāo)簽,雖然遠(yuǎn)程倉庫里沒有這個(gè)分支裕照,更沒有這個(gè)版本號(hào)攒发,但標(biāo)簽卻可以成功推送调塌。推送標(biāo)簽成功后晋南,在 GitHub 倉庫里會(huì)新增一個(gè) tag 和對(duì)應(yīng)的 release:

1.6 GitHub 倉庫新增 release 截圖

1.7 git push origin --tags 推送全部本地倉庫標(biāo)簽至遠(yuǎn)程倉庫:

mcdx@ubuntu:~/git/jpt$ git push origin --tags 
Username for 'https://github.com': Manchangdx
Password for 'https://Manchangdx@github.com': 
對(duì)象計(jì)數(shù)中: 1, 完成.
寫入對(duì)象中: 100% (1/1), 166 bytes | 0 bytes/s, 完成.
Total 1 (delta 0), reused 0 (delta 0)
To https://github.com/LouPlus/jpt
 * [new tag]         haha1.2 -> haha1.2
 * [new tag]         xixi1.1 -> xixi1.1

1.8 git push origin :ref/tags/[標(biāo)簽名] 刪除遠(yuǎn)程倉庫的標(biāo)簽:

mcdx@ubuntu:~/git/jpt$ git push origin :refs/tags/haha1.2
Username for 'https://github.com': Manchangdx
Password for 'https://Manchangdx@github.com': 
To https://github.com/LouPlus/jpt
 - [deleted]         haha1.2
1.8 刪除標(biāo)簽成功后,GitHub 頁面的截圖

1.9 git fetch --tags 刷新本地隱式分支順便刷新了本地標(biāo)簽羔砾,此命令加 -p 會(huì)清除無效的本地隱式分支负间,但不會(huì)清除未推送到遠(yuǎn)端的本地標(biāo)簽,因?yàn)闃?biāo)簽都是顯式的姜凄。另外 git pull 命令也會(huì)拉取遠(yuǎn)程標(biāo)簽到本地政溃。

二、GitHub 版本 releases

如今我們可以興奮地宣布發(fā)布一個(gè)軟件產(chǎn)品的版本态秧,發(fā)布過程就是一個(gè)將軟件交付給最終用戶的工作流董虱。版本是具有修改日志和二進(jìn)制文件的一類對(duì)象,它們提供了 Git 工作流之外的完整項(xiàng)目歷史申鱼,它們也可以從存儲(chǔ)庫的主頁上被訪問愤诱。

發(fā)布版 release 附帶發(fā)布說明和下載軟件或源代碼的鏈接。按照許多 Git 項(xiàng)目的約定捐友,發(fā)布版本與 Git 的標(biāo)簽 tag 綁定淫半。您可以使用現(xiàn)有的標(biāo)簽,或者讓 release 在發(fā)布時(shí)創(chuàng)建標(biāo)簽匣砖。

release 是具有修改日志和二進(jìn)制文件的一級(jí)對(duì)象科吭,它可以代表超出 Git 架構(gòu)本身的一個(gè)特定時(shí)間點(diǎn)之前的所有項(xiàng)目歷史。也就是通過 release猴鲫,不但能夠通過源碼體現(xiàn)出項(xiàng)目歷史对人,還能通過已經(jīng)編譯好的二進(jìn)制文件來進(jìn)一步描述此時(shí)的項(xiàng)目狀態(tài)》鞴玻“超出 Git 架構(gòu)本身” 的意思則在于牺弄,Git 本身只能記錄項(xiàng)目修改,本質(zhì)上不適合將編譯好的項(xiàng)目二進(jìn)制文件記錄下來匣缘。而通過 release 則把項(xiàng)目二進(jìn)制文件保存了下來猖闪,方便用戶下載,也方便查找特定版本肌厨。

創(chuàng)建 release 需要通過源碼托管商的網(wǎng)頁操作界面來進(jìn)行培慌,一般會(huì)要求填寫 tag 名、分支以及相應(yīng)的發(fā)布說明柑爸,還可上傳編譯好的程序吵护、打包好的文件等。

標(biāo)簽是 git 中的概念,而 release 則是 Github馅而、碼云等源碼托管商所提供的更高層的概念祥诽。也就是說 git 本身是沒有 release 這個(gè)概念的,只有 tag瓮恭。兩者之間的關(guān)系則是雄坪,release 基于 tag,為 tag 添加更豐富的信息屯蹦,一般是編譯好的文件维哈。

release 是源碼托管商對(duì) Git 的 tag 功能的增強(qiáng)。通過 Git 提供的 tag 功能登澜,我們可以給項(xiàng)目進(jìn)行版本標(biāo)識(shí)阔挠,以識(shí)別特定的版本,如 v0.1.0脑蠕、v1.0.0 等购撼。而通過源碼托管商提供的 release 功能,在 tag 的基礎(chǔ)上我們可以添加編譯好的二進(jìn)制文件等谴仙,如 .deb迂求、.exe 等給特定的版本提供更多的信息,方便用戶狞甚,也方便后期查找特定版本的程序锁摔。

報(bào)錯(cuò)
In Unix systems the end of a line is represented with a line feed (LF). In windows a line is represented with a carriage return (CR) and a line feed (LF) thus (CRLF).

解決辦法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市哼审,隨后出現(xiàn)的幾起案子谐腰,更是在濱河造成了極大的恐慌,老刑警劉巖涩盾,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件十气,死亡現(xiàn)場離奇詭異,居然都是意外死亡春霍,警方通過查閱死者的電腦和手機(jī)砸西,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來址儒,“玉大人芹枷,你說我怎么就攤上這事×ぃ” “怎么了鸳慈?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長喧伞。 經(jīng)常有香客問我走芋,道長绩郎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任翁逞,我火速辦了婚禮肋杖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挖函。我一直安慰自己状植,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布挪圾。 她就那樣靜靜地躺著浅萧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哲思。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天吩案,我揣著相機(jī)與錄音棚赔,去河邊找鬼。 笑死徘郭,一個(gè)胖子當(dāng)著我的面吹牛靠益,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播残揉,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼胧后,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了抱环?” 一聲冷哼從身側(cè)響起壳快,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎镇草,沒想到半個(gè)月后眶痰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梯啤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年竖伯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片因宇。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡七婴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出察滑,到底是詐尸還是另有隱情打厘,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布杭棵,位于F島的核電站婚惫,受9級(jí)特大地震影響氛赐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜先舷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一艰管、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蒋川,春花似錦牲芋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氮兵,卻和暖如春裂逐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背泣栈。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國打工卜高, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人南片。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓掺涛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疼进。 傳聞我的和親對(duì)象是個(gè)殘疾皇子薪缆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359