代码添加到一定阶段,就需要创建分支管理,比如新加一个功能,但有想功能能不影响主线代码的开发,就可以将主线开一条分支,分支的功能和主线一模一样,在分支上新加和测试功能,功能添加成功后,就可以将该功能的分支合并到主线上面去。也可以将分支创建成稳定版,测试版等多条分支的基本功能可以同步开发。还可以为修复bug创建分支,代码主干有bug,但修复时间长,主干还要继续开发。这时就在主干开出一条bug分支,主干照常添加功能,bug分支则修复bug,等修复完之后,将bug分支合并到主干上面就可以了。
一个项目,不同的人负责不同的分支功能,由一个管理员负责合并分支。
分支可以将当前开发的代码根据开发项目的不同划分成的不同版本,在分支中开发,不会影响主干master的代码也不影响其他分支的进行,在开发一个新功能时,应在一个新的分支上开发,调试完成后,确认没有问题,可以将该分支的新功能合并到主干master中。在分支开发中,为了不影响进度,也可以为分支更新。比如主干master添加了一项大众的功能或者修补了某个漏洞,也可以通过分支的命令,将主干的改动同步到分支中,分支和主干是各自独立的,分支的代码也可以同步到主干中。
命令:git branch branchname
创建分支很简单,仅仅输入git branch + 分支名就可以,代码版本中的所有分支可以通过git branch来查看,查看该代码库中所有本地和远程的分支可以通过命令git branch -a来查看。
命令:git branch -a
ghost@ghost-machine:~/project$ git branch -a
* master
v1.1
v1.2
v1.3
remotes/origin/master
ghost@ghost-machine:~/project$
git checkout branchname
git checkout有很多功能,其中在后面输入分支名后就是检出git分支功能,也就是跳转功能。
ghost@ghost-machine:~/project$ git checkout v1.1
切换到分支 'v1.1'
ghost@ghost-machine:~/project$ git branch
master
* v1.1
v1.2
v1.3
ghost@ghost-machine:~/project$
如果分支是新建的,在跳转到该分支之后,分支的进度与主干master一样,跳转之后可以在该分支修改代码,添加功能、修复漏洞和测试,此时修改后的代码仅仅在该分支有效,与主干无关,代码修改不影响主干,如果主干需要改动,也可以通过git checkout master命令跳回主干,主干的代码和跳到分支之前的一样,分支上的改动还原回主干的代码。其实主干就是一个命名为master的分支,在git clone的默认状态下,git会默认下载主干master分支。
命令:git branch -m old_branch_name new_branch_name
修改名字的效果如下。
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch
* master
v1.1
v1.2
v1.3
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch -m v1.3 vtest
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch
* master
v1.1
v1.2
vtest
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$
命令:git branch -d branch_name
删除分支的效果如下
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch -d delete_branch
已删除分支 delete_branch(曾为 8602795)。
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$
在本地将分支创建好后,使用git push想把分支推送到远程仓库中,但是会发现显示的是Everything up-to-date,原因是远程仓库默认的分支是master,所以master没有改变就没有推送的必要,这时需要推送的另一个命令,将分支推送给远程仓库。
命令:git push origin branch_name
效果如下。
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git push
Everything up-to-date
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git push origin v1.1
Total 0 (delta 0), reused 0 (delta 0)
To /home/ghost/warehouse/Project_test.git/
* [new branch] v1.1 -> v1.1
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git push origin v1.2
Total 0 (delta 0), reused 0 (delta 0)
To /home/ghost/warehouse/Project_test.git/
* [new branch] v1.2 -> v1.2
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git push origin vtest
Total 0 (delta 0), reused 0 (delta 0)
To /home/ghost/warehouse/Project_test.git/
* [new branch] vtest -> vtest
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$
也可以全部推送
命令:git push origin –all
效果如下
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch v1.4
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch v1.5
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git push origin --all
Total 0 (delta 0), reused 0 (delta 0)
To /home/ghost/warehouse/Project_test.git/
* [new branch] v1.4 -> v1.4
* [new branch] v1.5 -> v1.5
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$
用法:
git pull origin v1.1 将远程的v1.1
分支合并入当前的分支上
git fetch origin v1.1:local_v1.1
不合并本地分支,将远程分支v1.1下载到本地后以local_v1.1作为一个新分支的命名。
本地仓库上的分支情况如下
ghost@ghost-machine:~/workspace/test/Project_test$ git branch
* master
ghost@ghost-machine:~/workspace/test/Project_test$
远程仓库上有分支,查看的方法如下。
使用命令:git branch -a
ghost@ghost-machine:~/workspace/test/Project_test$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/v1.1
remotes/origin/v1.2
remotes/origin/v1.4
remotes/origin/v1.5
remotes/origin/vtest
ghost@ghost-machine:~/workspace/test/Project_test$
1、获取远程分支
直接切换到该分支
ghost@ghost-machine:~/workspace/test/Project_test$ git checkout v1.1
分支 v1.1 设置为跟踪来自 origin 的远程分支 v1.1。
切换到一个新分支 'v1.1'
ghost@ghost-machine:~/workspace/test/Project_test$ git checkout v1.2
分支 v1.2 设置为跟踪来自 origin 的远程分支 v1.2。
切换到一个新分支 'v1.2'
ghost@ghost-machine:~/workspace/test/Project_test$ git branch
master
v1.1
* v1.2
ghost@ghost-machine:~/workspace/git_test$
2、获取远程分支的所有历史文件,并创建新的分支
获取远程的分支命令如下:
git pull origin origin_branch_name:local_branch_name
或
git fetch origin origin_branch_name:local_branch_name
从远程的origin仓库的origin_branch_name分支下载到本地并新建一个分支local_branch_name
ghost@ghost-machine:~/workspace/test/Project_test$ git pull origin v1.1:vzxtest1
来自 /home/ghost/warehouse/Project_test
* [新分支] v1.1 -> vzxtest1
Already up-to-date.
ghost@ghost-machine:~/workspace/test/Project_test$
ghost@ghost-machine:~/workspace/test/Project_test$ git fetch origin v1.2:vzxtest2
来自 /home/ghost/warehouse/Project_test
* [新分支] v1.2 -> vzxtest2
Already up-to-date.
ghost@ghost-machine:~/workspace/test/Project_test$ git branch
* master
vzxtest1
vzxtest2
ghost@ghost-machine:~/workspace/test/Project_test$
3、通过git clone获取远程分支
由于开发仅仅需要修改分支,master比较大,则可以直接通过git clone -b branchname url 来获取远程分支。
ghost@ghost-machine:~/workspace$ git clone -b Csteamfile [email protected]:pjoenix_work/test_Makefile.git
正克隆到 'test_Makefile'...
Warning: Permanently added the ECDSA host key for IP address '***.***.***.***' to the list of known hosts.
remote: Enumerating objects: 1103, done.
remote: Counting objects: 100% (1103/1103), done.
remote: Compressing objects: 100% (788/788), done.
remote: Total 1103 (delta 577), reused 673 (delta 292)
接收对象中: 100% (1103/1103), 15.15 MiB | 8.24 MiB/s, 完成.
处理 delta 中: 100% (577/577), 完成.
检查连接... 完成。
ghost@ghost-machine:~/workspace$ cd test_Makefile/
ghost@ghost-machine:~/workspace/test_Makefile$ git branch
* Csteamfile
ghost@ghost-machine:~/workspace/test_Makefile$
通过该命令,可以将远程的分支删除掉
host@ghost-machine:~/test_Makefile$ git push origin --delete More_Makefile
remote: Powered By Gitee.com
To [email protected]:pjoenix_work/test_Makefile.git
- [deleted] More_Makefile
合并分支即将分支的改动与另一个分支合并,也可以和master分支合并。合并后,被合并的分支上的commit都被合并到需要合并的分支上。
命令: git merge branchname
使用该命令有个前提,就是要分清哪个是需要合并的分支,哪个是被合并的分支,输入该命令的时候,需要切换到需要合并的分支上。
例如:需要将分支v1.1的更新内容合并到v1.2上,则首先要切换到v1.2的分支上:git checkout v1.2,确认目前的工作状态在v1.2上
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git checkout v1.2
切换到分支 'v1.2'
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch
master
v1.1
* v1.2
v1.4
v1.5
vtest
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$
V1.1的更新如下:
commit 28f059eb7d9479cc6d5c6f684e106bd540f1f1e5
Author: zx
Date: Sun Nov 20 10:18:47 2016 +0800
test 3 for v1.1
commit d8033d48714dcaf8b8fabfbaacc6df8b79b23600
Author: zx
Date: Sun Nov 20 10:17:52 2016 +0800
test 2 for v1.1
commit f35d10ace6da47c1b19c4eaf682e5e6645a3d2e1
Author: zx
Date: Sun Nov 20 10:16:54 2016 +0800
test 1 for v1.1
commit 8602795022e97241b2926ac7d5b0a685c57e0f4e
Merge: 2ea3364 d8b74f0
Author: zx
Date: Sun Nov 13 10:00:10 2016 +0800
add pathc diff is 2
V1.2的更新如下:
commit 8602795022e97241b2926ac7d5b0a685c57e0f4e
Merge: 2ea3364 d8b74f0
Author: zx
Date: Sun Nov 13 10:00:10 2016 +0800
add pathc diff is 2
commit d8b74f02ffdf6b2843fdce848490d40f6e562c95
Author: zx
Date: Sun Nov 13 09:42:49 2016 +0800
rm patch
commit 2ea33641ee8ec5c1e191764fa6d0c9c884632c10
Author: zx
Date: Sun Nov 13 09:33:08 2016 +0800
patch is 2
使用命令 git merge 将v1.1的commit合并到v1.2上
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git merge v1.1
更新 8602795..28f059e
Fast-forward
v1.1_test.txt | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 v1.1_test.txt
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git log
commit 28f059eb7d9479cc6d5c6f684e106bd540f1f1e5
Author: zx
Date: Sun Nov 20 10:18:47 2016 +0800
test 3 for v1.1
commit d8033d48714dcaf8b8fabfbaacc6df8b79b23600
Author: zx
Date: Sun Nov 20 10:17:52 2016 +0800
test 2 for v1.1
commit f35d10ace6da47c1b19c4eaf682e5e6645a3d2e1
Author: zx
Date: Sun Nov 20 10:16:54 2016 +0800
test 1 for v1.1
合并也会有冲突,解决冲突的方法如同打补丁解决的冲突的方法一样。
命令:git log --graph
在平常的log记录左边就会多出一些“*”和“|”的符号
* commit f35d10ace6da47c1b19c4eaf682e5e6645a3d2e1
| Author: zx
| Date: Sun Nov 20 10:16:54 2016 +0800
|
| test 1 for v1.1
|
* commit 8602795022e97241b2926ac7d5b0a685c57e0f4e
|\ Merge: 2ea3364 d8b74f0
| | Author: zx
| | Date: Sun Nov 13 10:00:10 2016 +0800
| |
| | add pathc diff is 2
| |
| * commit d8b74f02ffdf6b2843fdce848490d40f6e562c95
| | Author: zx
| | Date: Sun Nov 13 09:42:49 2016 +0800
| |
| | rm patch
| |
| * commit 23b0c398dd72eade722fc6d2308097aec6148630
| | Author: zx
| | Date: Sun Nov 13 09:31:35 2016 +0800
| |
| | patch is 1
| |
* | commit 2ea33641ee8ec5c1e191764fa6d0c9c884632c10
|/ Author: zx
| Date: Sun Nov 13 09:33:08 2016 +0800
|
| patch is 2
|
分支中需要有合并的提交,但使用git merge就会将合并所有的提交,但此时是不需要合并这么多的提交,只是需要合并某一两个的commit提交,这时需要使用git cherry-pick命令。
命令:git cherry-pick
若合并的过程中有冲突,需要解决冲突并上传解决后的方法。
分支v1.1的提交历史
commit 34434f922b9698f0b296fd1fa8aac800e3965238
Author: zhongxin
Date: Wed Aug 23 23:02:32 2017 +0800
v1.1 for v1.2 commit 3.
commit 9d79e2ead30966d74bb1648c36480fe7ab580bf6
Author: zhongxin
Date: Wed Aug 23 23:02:08 2017 +0800
v1.1 for v1.2 commit 2.
commit cfc355ebe0ddcbc80e918332bc319786896a30a2
Author: zhongxin
Date: Wed Aug 23 23:01:14 2017 +0800
v1.1 for v1.2 commit 1.
commit 25ceef1a6f63dbf80cbfedc60ce10215c08f7429
Author: zx
Date: Sat Dec 3 10:39:17 2016 +0800
add by 2016.12.03
v1.2的提交历史
commit 8bdea8cc6d068a5c159b49eaeeae3c9925ed879f
Author: zx
Date: Tue Nov 29 22:56:57 2016 +0800
add for v1.2 by 2016.11.29
commit 9815af9d1a1639499cb784c32a2c0e390998a067
Merge: 4c6447e 84cb30d
Author: zx
Date: Tue Nov 29 22:36:11 2016 +0800
Merge branch 'master' into v1.2
commit 84cb30d370453e2e1a7dc2c3d974c397a8fa53b2
Author: zx
Date: Tue Nov 29 22:28:08 2016 +0800
add by 2016.11.29
commit 4c6447ec598616638b1d78d0c04757d48a04701a
Author: zx
Date: Sun Nov 20 10:45:14 2016 +0800
test 1 for v1.2
commit 28f059eb7d9479cc6d5c6f684e106bd540f1f1e5
Author: zx
Date: Sun Nov 20 10:18:47 2016 +0800
test 3 for v1.1
commit d8033d48714dcaf8b8fabfbaacc6df8b79b23600
Author: zx
Date: Sun Nov 20 10:17:52 2016 +0800
v1.2合并v1.1的一个提交,这个提交会有冲突
commit 9d79e2ead30966d74bb1648c36480fe7ab580bf6
Author: zhongxin
Date: Wed Aug 23 23:02:08 2017 +0800
v1.1 for v1.2 commit 2.
有冲突的原因:
第一个提交
commit cfc355ebe0ddcbc80e918332bc319786896a30a2
Author: zhongxin
Date: Wed Aug 23 23:01:14 2017 +0800
v1.1 for v1.2 commit 1.
这个提交是创建一个文件v1.1_for_v1.2_commit.txt,并在该文件写入
commit 1
第二个提交,就是需要合并的提交9d79e2ead,这个提交是往文件v1.1_for_v1.2_commit.txt追加写入
commit 2
如果只合并提交9d79e2ead,v1.2中还没有创建文件v1.1_for_v1.2_commit.txt,就会有冲突提示。
将分支切换到v1.2,合并过程
ghost@ghost-machine:~/workspace/git_test$ git cherry-pick 9d79e2ead
error: 不能应用 9d79e2e... v1.1 for v1.2 commit 2.
提示:冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'
提示:对修正后的文件做标记,然后用 'git commit' 提交
ghost@ghost-machine:~/workspace/git_test$ git status
位于分支 v1.2
您的分支与上游分支 'origin/v1.2' 一致。
您在执行拣选提交 9d79e2e 的操作。
(解决冲突并运行 "git cherry-pick --continue")
(使用 "git cherry-pick --abort" 以取消拣选操作)
未合并的路径:
(酌情使用 "git add/rm <文件>..." 标记解决方案)
由我们删除: v1.1_for_v1.2_commit.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
查看合并状态
ghost@ghost-machine:~/workspace/git_test$ git status
位于分支 v1.2
您的分支与上游分支 'origin/v1.2' 一致。
您在执行拣选提交 9d79e2e 的操作。
(解决冲突并运行 "git cherry-pick --continue")
(使用 "git cherry-pick --abort" 以取消拣选操作)
未合并的路径:
(酌情使用 "git add/rm <文件>..." 标记解决方案)
由我们删除: v1.1_for_v1.2_commit.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
ghost@ghost-machine:~/workspace/git_test$ cat v1.1_for_v1.2_commit.txt
commit 1
commit 2
ghost@ghost-machine:~/workspace/git_test$
将有冲突的文件修改后再次提交
ghost@ghost-machine:~/workspace/git_test$ git add .
ghost@ghost-machine:~/workspace/git_test$ git commit -m "v1.2 to v1.1 commit 1,2."
[v1.2 6c5c2e3] v1.2 to v1.1 commit 1,2.
Date: Wed Aug 23 23:02:08 2017 +0800
1 file changed, 2 insertions(+)
create mode 100644 v1.1_for_v1.2_commit.txt
ghost@ghost-machine:~/workspace/git_test$ git log
commit 6c5c2e380b524a55a6b5e851b7e0ecc9d8a4d602
Author: zhongxin
Date: Wed Aug 23 23:02:08 2017 +0800
v1.2 to v1.1 commit 1,2.
commit 8bdea8cc6d068a5c159b49eaeeae3c9925ed879f
Author: zx
Date: Tue Nov 29 22:56:57 2016 +0800
add for v1.2 by 2016.11.29
如果合并的提交没有冲突,则不需要再次修改后再提交
根据上节的内容,v1.2合并v1.1的一个提交,这个提交没有冲突
commit 34434f922b9698f0b296fd1fa8aac800e3965238
Author: zhongxin
Date: Wed Aug 23 23:02:32 2017 +0800
v1.1 for v1.2 commit 3.
这个提交是往文件v1.1_for_v1.2_commit.txt追加写入
commit 3
由于上一节已经解决了冲突,所以现在合并不会产生冲突。
将分支切换到v1.2,合并过程
ghost@ghost-machine:~/workspace/git_test$ git cherry-pick 34434f922b
[v1.2 2b897d0] v1.1 for v1.2 commit 3.
Date: Wed Aug 23 23:02:32 2017 +0800
1 file changed, 1 insertion(+)
ghost@ghost-machine:~/workspace/git_test$ git log
commit 2b897d031ae5c1fd347ed08779388729facdb5be
Author: zhongxin
Date: Wed Aug 23 23:02:32 2017 +0800
v1.1 for v1.2 commit 3.
commit 6c5c2e380b524a55a6b5e851b7e0ecc9d8a4d602
Author: zhongxin
Date: Wed Aug 23 23:02:08 2017 +0800
v1.2 to v1.1 commit 1,2.
commit 8bdea8cc6d068a5c159b49eaeeae3c9925ed879f
Author: zx
Date: Tue Nov 29 22:56:57 2016 +0800
add for v1.2 by 2016.11.29
分支v1.1的提交如下:
commit d1a42023eecd7815903386e78a39e60be147d5c0 (HEAD -> v1.1, origin/v1.1)
Author: zxng_work
Date: Wed Oct 3 11:14:55 2018 +0800
add 6
commit 179b862e361ce73d63d2492fd47ba3cf79c05dae
Author: zxng_work
Date: Wed Oct 3 11:14:30 2018 +0800
add 5
commit eb789c8902a9603664b3a4edb8af138fd743b489
Author: zxng_work
Date: Wed Oct 3 11:14:00 2018 +0800
add 4
现在需要将add 4和add 5的提交合并到v1.2分支上
将分支切换到v1.2,合并过程
ghost@ghost-machine:~/workspace/git_test$ git checkout v1.2
切换到分支 'v1.2'
ghost@ghost-machine:~/workspace/git_test$ git cherry-pick eb789c..179b86
error: 不能应用 179b862... add 5
提示:冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'
提示:对修正后的文件做标记,然后用 'git commit' 提交
ghost@ghost-machine:~/workspace/git_test$ git status
位于分支 v1.2
您在执行拣选提交 179b862 的操作。
(解决冲突并运行 "git cherry-pick --continue")
(使用 "git cherry-pick --abort" 以取消拣选操作)
未合并的路径:
(使用 "git add <文件>..." 标记解决方案)
双方修改: v1.1_test.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
ghost@ghost-machine:~/workspace/git_test$ vim v1.1_test.txt
ghost@ghost-machine:~/workspace/git_test$ git add v1.1_test.txt
ghost@ghost-machine:~/workspace/git_test$ git commit -m "git cherry-pick"
[v1.2 7ad85d0] git cherry-pick
Author: zxng_work
Date: Wed Oct 3 11:14:30 2018 +0800
1 file changed, 3 insertions(+)
git标签管理是将某个时间点做标记,可以用于版本的发布。git tag是版本中的标签状态。概念和分支差不多,但标签只是用来做标记,版本差异和添加功能还是使用分支功能。在开发的某个时间点打上标签,记录当时的状态,例如在某个时间段,将所有功能分支添加完毕后,合入主干版本,打上标签V0.1版本发布,并加以注释,可以在后期维护的时候更方便,而不是需要记住主干上的commit的哈希值以及备注来寻找V0.1版本了,还可以通过git checkout 直接跳转到标签的位置,而不是输入该版本的commit哈希值跳转。
git打标签分为普通标签和备注标签,普通标签就只有一个名字,而备注标签可以给该标签添加备注,例如可以打标签的时机,众多功能添加后,出第一版测试版等。
普通标签命令:git tag tagname
备注标签命令:git tag tagname -m “something note”
ghost@ghost-machine:~/workspace/test/Project_test$ git tag V0.1test
ghost@ghost-machine:~/workspace/test/Project_test$ git tag V0.2test -m "V0.2 for test"
ghost@ghost-machine:~/workspace/test/Project_test$ git tag
V0.1test
V0.2test
ghost@ghost-machine:~/workspace/test/Project_test$
为历史的某个提交打标签。git tag只是给最近的提交commit打标签,如果刚好想给前面的提交commit打标签,在打标签的后面添加相应的commit的哈希值即可:
命令:git tag
ghost@ghost-machine:~/workspace/test/Project_test$ git log
commit 84cb30d370453e2e1a7dc2c3d974c397a8fa53b2
Author: zx
Date: Tue Nov 29 22:28:08 2016 +0800
add by 2016.11.29
commit 28f059eb7d9479cc6d5c6f684e106bd540f1f1e5
Author: zx
Date: Sun Nov 20 10:18:47 2016 +0800
test 3 for v1.1
add by 2016.11.29
ghost@ghost-machine:~/workspace/test/Project_test$ git tag vtest 28f059
ghost@ghost-machine:~/workspace/test/Project_test$ git tag
V0.1test
V0.2test
vtest
ghost@ghost-machine:~/workspace/test/Project_test$ git show vtest
warning: refname 'vtest' is ambiguous.
commit 28f059eb7d9479cc6d5c6f684e106bd540f1f1e5
Author: zx
Date: Sun Nov 20 10:18:47 2016 +0800
test 3 for v1.1
diff --git a/v1.1_test.txt b/v1.1_test.txt
index c235a34..a8d3af4 100644
--- a/v1.1_test.txt
+++ b/v1.1_test.txt
@@ -1,2 +1,3 @@
test commit 1 for v1.1
test commit 2 for v1.1
+test commit 3 for v1.1
ghost@ghost-machine:~/workspace/test/Project_test$
命令:git show tagname
用该命令可以将标签显示出来,有备注的标签也可以显示出备注。
ghost@ghost-machine:~/workspace/test/Project_test$ git show V0.1test
commit 8602795022e97241b2926ac7d5b0a685c57e0f4e
Merge: 2ea3364 d8b74f0
Author: zx
Date: Sun Nov 13 10:00:10 2016 +0800
add pathc diff is 2
ghost@ghost-machine:~/workspace/test/Project_test$ git show V0.2test
tag V0.2test
Tagger: zx
Date: Sun Nov 27 09:48:20 2016 +0800
V0.2 for test
commit 8602795022e97241b2926ac7d5b0a685c57e0f4e
Merge: 2ea3364 d8b74f0
Author: zx
Date: Sun Nov 13 10:00:10 2016 +0800
add pathc diff is 2
ghost@ghost-machine:~/workspace/test/Project_test$
命令:git tag -d tagname
删除标签和删除分支一样,在命令后面加入 -d
命令:git push origin
这个命令可以将某个标签推送道服务器上。
ghost@ghost-machine:~/workspace/test/Project_test$ git push origin V0.1test
Total 0 (delta 0), reused 0 (delta 0)
To /home/ghost/warehouse/Project_test.git/
* [new tag] V0.1test -> V0.1test
ghost@ghost-machine:~/workspace/test/Project_test$
推送全部标签到服务器上也可以用下列命令
命令:git push origin --tag
ghost@ghost-machine:~/workspace/test/Project_test$ git push origin --tag
对象计数中: 1, 完成.
写入对象中: 100% (1/1), 151 bytes | 0 bytes/s, 完成.
Total 1 (delta 0), reused 0 (delta 0)
To /home/ghost/warehouse/Project_test.git/
* [new tag] V0.2test -> V0.2test
ghost@ghost-machine:~/workspace/test/Project_test$
git获取标签仅仅输入命令:git pul即可,后面需要添加任何选项
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git pull
来自 /home/ghost/warehouse/Project_test
* [新标签] V0.1test -> V0.1test
* [新标签] V0.2test -> V0.2test
Already up-to-date.
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$