在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-commit2 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.92 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.12 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.12 deleted tag 'v0.1' (was fee78aa)
因為建立的標籤都只儲存在本地,不會自動推送到遠端。所以,打錯的標籤可以在本地安全刪除。
如果要推送某個標籤到遠端,使用命令git push origin
:
1 $ git push origin v1.02 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 --tags2 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.92 deleted tag 'v0.9' (was 24f92f4)
然後,從遠端刪除。刪除命令也是push,但是格式如下:
1 $ git push origin :refs/tags/v0.92 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乾掉了...