Git 標籤(版本號)

2022-07-05 02:51:11 字數 3518 閱讀 9306

在git中打標籤非常簡單,首先,切換到需要打標籤的分支上:

1

$ git branch

2 *dev

3master

4$ git checkout master

5 switched to branch 'master'

然後,敲命令git tag就可以打乙個新標籤:

$ git tag v1.0

可以用命令git tag檢視所有標籤:

1

$ git tag

2 v1.0

預設標籤是打在最新提交的commit上的。有時候,如果忘了打標籤,比如,現在已經是周五了,但應該在周一打的標籤沒有打,怎麼辦?

方法是找到歷史提交的commit id,然後打上就可以了:

1 $ git log --pretty=oneline --abbrev-commit

2 3f063d8 (head -> master, tag: v1.0, origin/master, origin/head) merged bug fix 101

3 a8b5c5e fix bug 101

4c0d98d6 conflict fixed

524f92f4 coship

61f9f1d5 money

7f8c2cfa branch test

8 c6bdeb5 remove test.txt

9 c61ac4f add test.txt

1011

136d10c add two lines

12 1186b5e creat a new

file readme

比方說要對coship這次提交打標籤,它對應的commit id是24f92f4,敲入命令:

$ git tag v0.9 24f92f4

再用命令git tag檢視標籤:

1

$ git tag

2 v0.9

3 v1.0

注意,標籤不是按時間順序列出,而是按字母排序的。可以用git show檢視標籤資訊:

1 $ git show v0.9

2 commit 24f92f49eb1b27eba2e38e667983e63830bc6041 (tag: v0.9)

3 author: liumingjun <[email protected]>

4date: fri mar 23 16:06:04 2018 +080056

coship

78 diff --git a/readme.txt b/readme.txt

9 index a4c0762..ced6222 100644

10 --- a/readme.txt

11 +++ b/readme.txt

12 @@ -1,3 +1,4@@

13 git is a distributed version control system.

14git is free software distributed under the gpl

15i love work

16 +coship coship and coship

可以看到,v0.9確實打在coship這次提交上。

還可以建立帶有說明的標籤,用-a指定標籤名,-m指定說明文字:

$ git tag -a v0.1 -m "version 0.1 released" 1186b5e

用命令git show可以看到說明文字:

1 $ git show v0.1

2 tag v0.1

3 tagger: liumingjun <[email protected]>

4date: fri mar 23 17:51:54 2018 +0800

56 version 0.1released

78 commit 1186b5ec3a492a85c085b7987b10c4be52e0381f (tag: v0.1)

9 author: liumingjun <[email protected]>

10date: thu mar 22 20:21:57 2018 +0800

1112 creat a new

file

readme

1314 diff --git a/readme.txt b/readme.txt

15new

file mode 100644

16 index 0000000..c81a21f

17 --- /dev/null

18 +++ b/readme.txt

19 @@ -0,0 +1@@

20 +this is git

21 \ no newline at end of file

如果標籤打錯了,也可以刪除:

1 $ git tag -d v0.1

2 deleted tag 'v0.1' (was fee78aa)

因為建立的標籤都只儲存在本地,不會自動推送到遠端。所以,打錯的標籤可以在本地安全刪除。

如果要推送某個標籤到遠端,使用命令git push origin

1 $ git push origin v1.0

2 total 0 (delta 0), reused 0 (delta 0)

3 to github.com:lmj1117/test.git

4 * [new tag] v1.0 -> v1.0

或者,一次性推送全部尚未推送到遠端的本地標籤:

1 $ git push origin --tags

2 total 0 (delta 0), reused 0 (delta 0)

3 to github.com:lmj1117/test.git

4 * [new tag] v0.9 -> v0.9

如果標籤已經推送到遠端,要刪除遠端標籤就麻煩一點,先從本地刪除:

1 $ git tag -d v0.9

2 deleted tag 'v0.9' (was 24f92f4)

然後,從遠端刪除。刪除命令也是push,但是格式如下:

1 $ git push origin :refs/tags/v0.9

2 to github.com:lmj1117/test.git

3 - [deleted] v0.9

要看看是否真的從遠端庫刪除了標籤,可以登陸github檢視。

git版本號回滾

先說今天遇到的問題,看到乙個config.php的配置檔案一直在改動的狀態下,可是和遠端的config.php是不一致的,我不須要提交它,可是看它在 modified的狀態下,非常不爽。想刪除它。git rm config.php,然後git push了下,結果不僅把本地的config.php乾掉了...

git 生成版本號 git describe

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

git版本號回滾

先說今天遇到的問題,看到乙個config.php的配置檔案一直在改動的狀態下,可是和遠端的config.php是不一致的,我不須要提交它,可是看它在 modified的狀態下,非常不爽。想刪除它。git rm config.php,然後git push了下,結果不僅把本地的config.php乾掉了...