git版本管理软件——git分支管理 深碍√TFBOYSˉ_ 2022-06-09 13:47 848阅读 0赞 代码添加到一定阶段,就需要创建分支管理,比如新加一个功能,但有想功能能不影响主线代码的开发,就可以将主线开一条分支,分支的功能和主线一模一样,在分支上新加和测试功能,功能添加成功后,就可以将该功能的分支合并到主线上面去。也可以将分支创建成稳定版,测试版等多条分支的基本功能可以同步开发。还可以为修复bug创建分支,代码主干有bug,但修复时间长,主干还要继续开发。这时就在主干开出一条bug分支,主干照常添加功能,bug分支则修复bug,等修复完之后,将bug分支合并到主干上面就可以了。 # git分支管理流程图 # ![这里写图片描述][format_png] 一个项目,不同的人负责不同的分支功能,由一个管理员负责合并分支。 # git分支 git branch # 分支可以将当前开发的代码根据开发项目的不同划分成的不同版本,在分支中开发,不会影响主干master的代码也不影响其他分支的进行,在开发一个新功能时,应在一个新的分支上开发,调试完成后,确认没有问题,可以将该分支的新功能合并到主干master中。在分支开发中,为了不影响进度,也可以为分支更新。比如主干master添加了一项大众的功能或者修补了某个漏洞,也可以通过分支的命令,将主干的改动同步到分支中,分支和主干是各自独立的,分支的代码也可以同步到主干中。 ## 创建git分支 git branch branchname ## 命令: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 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 ## 命令: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 ## 命令: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 ## 在本地将分支创建好后,使用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、git fetch ## 用法: 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 git@gitee.com: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$ ## 删除远程分支 git push origin --delete ## 通过该命令,可以将远程的分支删除掉 host@ghost-machine:~/test_Makefile$ git push origin --delete More_Makefile remote: Powered By Gitee.com To git@gitee.com:pjoenix_work/test_Makefile.git - [deleted] More_Makefile # 分支合并与同步 git merge # 合并分支即将分支的改动与另一个分支合并,也可以和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 <zx@git.com> Date: Sun Nov 20 10:18:47 2016 +0800 test 3 for v1.1 commit d8033d48714dcaf8b8fabfbaacc6df8b79b23600 Author: zx <zx@git.com> Date: Sun Nov 20 10:17:52 2016 +0800 test 2 for v1.1 commit f35d10ace6da47c1b19c4eaf682e5e6645a3d2e1 Author: zx <zx@git.com> Date: Sun Nov 20 10:16:54 2016 +0800 test 1 for v1.1 commit 8602795022e97241b2926ac7d5b0a685c57e0f4e Merge: 2ea3364 d8b74f0 Author: zx <zx@git.com> Date: Sun Nov 13 10:00:10 2016 +0800 add pathc diff is 2 V1.2的更新如下: commit 8602795022e97241b2926ac7d5b0a685c57e0f4e Merge: 2ea3364 d8b74f0 Author: zx <zx@git.com> Date: Sun Nov 13 10:00:10 2016 +0800 add pathc diff is 2 commit d8b74f02ffdf6b2843fdce848490d40f6e562c95 Author: zx <zx@git.com> Date: Sun Nov 13 09:42:49 2016 +0800 rm patch commit 2ea33641ee8ec5c1e191764fa6d0c9c884632c10 Author: zx <zx@git.com> 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 <zx@git.com> Date: Sun Nov 20 10:18:47 2016 +0800 test 3 for v1.1 commit d8033d48714dcaf8b8fabfbaacc6df8b79b23600 Author: zx <zx@git.com> Date: Sun Nov 20 10:17:52 2016 +0800 test 2 for v1.1 commit f35d10ace6da47c1b19c4eaf682e5e6645a3d2e1 Author: zx <zx@git.com> Date: Sun Nov 20 10:16:54 2016 +0800 test 1 for v1.1 合并也会有冲突,解决冲突的方法如同打补丁解决的冲突的方法一样。 ## 查看当前分支合并的情况 ## 命令:git log --graph 在平常的log记录左边就会多出一些“\*”和“|”的符号 * commit f35d10ace6da47c1b19c4eaf682e5e6645a3d2e1 | Author: zx <zx@git.com> | Date: Sun Nov 20 10:16:54 2016 +0800 | | test 1 for v1.1 | * commit 8602795022e97241b2926ac7d5b0a685c57e0f4e |\ Merge: 2ea3364 d8b74f0 | | Author: zx <zx@git.com> | | Date: Sun Nov 13 10:00:10 2016 +0800 | | | | add pathc diff is 2 | | | * commit d8b74f02ffdf6b2843fdce848490d40f6e562c95 | | Author: zx <zx@git.com> | | Date: Sun Nov 13 09:42:49 2016 +0800 | | | | rm patch | | | * commit 23b0c398dd72eade722fc6d2308097aec6148630 | | Author: zx <zx@git.com> | | Date: Sun Nov 13 09:31:35 2016 +0800 | | | | patch is 1 | | * | commit 2ea33641ee8ec5c1e191764fa6d0c9c884632c10 |/ Author: zx <zx@git.com> | Date: Sun Nov 13 09:33:08 2016 +0800 | | patch is 2 | # 分支合并某个commit的提交 git cherry-pick # 分支中需要有合并的提交,但使用git merge就会将合并所有的提交,但此时是不需要合并这么多的提交,只是需要合并某一两个的commit提交,这时需要使用git cherry-pick命令。 命令:git cherry-pick <commitID> 若合并的过程中有冲突,需要解决冲突并上传解决后的方法。 分支v1.1的提交历史 commit 34434f922b9698f0b296fd1fa8aac800e3965238 Author: zhongxin <zxngyulin@163.com> Date: Wed Aug 23 23:02:32 2017 +0800 v1.1 for v1.2 commit 3. commit 9d79e2ead30966d74bb1648c36480fe7ab580bf6 Author: zhongxin <zxngyulin@163.com> Date: Wed Aug 23 23:02:08 2017 +0800 v1.1 for v1.2 commit 2. commit cfc355ebe0ddcbc80e918332bc319786896a30a2 Author: zhongxin <zxngyulin@163.com> Date: Wed Aug 23 23:01:14 2017 +0800 v1.1 for v1.2 commit 1. commit 25ceef1a6f63dbf80cbfedc60ce10215c08f7429 Author: zx <zx@git.com> Date: Sat Dec 3 10:39:17 2016 +0800 add by 2016.12.03 v1.2的提交历史 commit 8bdea8cc6d068a5c159b49eaeeae3c9925ed879f Author: zx <zx@git.com> Date: Tue Nov 29 22:56:57 2016 +0800 add for v1.2 by 2016.11.29 commit 9815af9d1a1639499cb784c32a2c0e390998a067 Merge: 4c6447e 84cb30d Author: zx <zx@git.com> Date: Tue Nov 29 22:36:11 2016 +0800 Merge branch 'master' into v1.2 commit 84cb30d370453e2e1a7dc2c3d974c397a8fa53b2 Author: zx <zx@git.com> Date: Tue Nov 29 22:28:08 2016 +0800 add by 2016.11.29 commit 4c6447ec598616638b1d78d0c04757d48a04701a Author: zx <zx@git.com> Date: Sun Nov 20 10:45:14 2016 +0800 test 1 for v1.2 commit 28f059eb7d9479cc6d5c6f684e106bd540f1f1e5 Author: zx <zx@git.com> Date: Sun Nov 20 10:18:47 2016 +0800 test 3 for v1.1 commit d8033d48714dcaf8b8fabfbaacc6df8b79b23600 Author: zx <zx@git.com> Date: Sun Nov 20 10:17:52 2016 +0800 ## 合并有冲突的提交 ## v1.2合并v1.1的一个提交,这个提交会有冲突 commit 9d79e2ead30966d74bb1648c36480fe7ab580bf6 Author: zhongxin <zxngyulin@163.com> Date: Wed Aug 23 23:02:08 2017 +0800 v1.1 for v1.2 commit 2. 有冲突的原因: 第一个提交 commit cfc355ebe0ddcbc80e918332bc319786896a30a2 Author: zhongxin <zxngyulin@163.com> 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 <zxngyulin@163.com> Date: Wed Aug 23 23:02:08 2017 +0800 v1.2 to v1.1 commit 1,2. commit 8bdea8cc6d068a5c159b49eaeeae3c9925ed879f Author: zx <zx@git.com> 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 <zxngyulin@163.com> 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 <zxngyulin@163.com> Date: Wed Aug 23 23:02:32 2017 +0800 v1.1 for v1.2 commit 3. commit 6c5c2e380b524a55a6b5e851b7e0ecc9d8a4d602 Author: zhongxin <zxngyulin@163.com> Date: Wed Aug 23 23:02:08 2017 +0800 v1.2 to v1.1 commit 1,2. commit 8bdea8cc6d068a5c159b49eaeeae3c9925ed879f Author: zx <zx@git.com> Date: Tue Nov 29 22:56:57 2016 +0800 add for v1.2 by 2016.11.29 ## 合并多个commit的提交 cherry-pick ## 分支v1.1的提交如下: commit d1a42023eecd7815903386e78a39e60be147d5c0 (HEAD -> v1.1, origin/v1.1) Author: zxng_work <zxngyulin@163.com> Date: Wed Oct 3 11:14:55 2018 +0800 add 6 commit 179b862e361ce73d63d2492fd47ba3cf79c05dae Author: zxng_work <zxngyulin@163.com> Date: Wed Oct 3 11:14:30 2018 +0800 add 5 commit eb789c8902a9603664b3a4edb8af138fd743b489 Author: zxng_work <zxngyulin@163.com> 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 <zxngyulin@163.com> Date: Wed Oct 3 11:14:30 2018 +0800 1 file changed, 3 insertions(+) # 标签管理git tag # git标签管理是将某个时间点做标记,可以用于版本的发布。git tag是版本中的标签状态。概念和分支差不多,但标签只是用来做标记,版本差异和添加功能还是使用分支功能。在开发的某个时间点打上标签,记录当时的状态,例如在某个时间段,将所有功能分支添加完毕后,合入主干版本,打上标签V0.1版本发布,并加以注释,可以在后期维护的时候更方便,而不是需要记住主干上的commit的哈希值以及备注来寻找V0.1版本了,还可以通过git checkout 直接跳转到标签的位置,而不是输入该版本的commit哈希值跳转。 ## 添加标签 git tag tagname ## 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 <tagname> <commit id> ghost@ghost-machine:~/workspace/test/Project_test$ git log commit 84cb30d370453e2e1a7dc2c3d974c397a8fa53b2 Author: zx <zx@git.com> Date: Tue Nov 29 22:28:08 2016 +0800 add by 2016.11.29 commit 28f059eb7d9479cc6d5c6f684e106bd540f1f1e5 Author: zx <zx@git.com> 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 <zx@git.com> 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 ## 命令:git show tagname 用该命令可以将标签显示出来,有备注的标签也可以显示出备注。 ghost@ghost-machine:~/workspace/test/Project_test$ git show V0.1test commit 8602795022e97241b2926ac7d5b0a685c57e0f4e Merge: 2ea3364 d8b74f0 Author: zx <zx@git.com> 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 <zx@git.com> Date: Sun Nov 27 09:48:20 2016 +0800 V0.2 for test commit 8602795022e97241b2926ac7d5b0a685c57e0f4e Merge: 2ea3364 d8b74f0 Author: zx <zx@git.com> 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 ## 命令:git tag -d tagname 删除标签和删除分支一样,在命令后面加入 -d ## 将标签推送到服务器git push origin tagname ## 命令:git push origin <tagname> 这个命令可以将某个标签推送道服务器上。 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 pull ## 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$ [format_png]: /images/20220609/29235db48f5a492db630957f11da2aca.png
还没有评论,来说两句吧...