使用Eclipse-Maven-git做Java开发(15)--git分支和标签的使用

3090103838 9年前

来自: http://my.oschina.net/songxinqiang/blog/608482


        到目前为止我们都还是在一个名为master的分支里面做操作,而git的优势之一就是对分支的操作,在本文中就来说一说怎么搞分支和标签。

0、准备

        接着上一篇文章来,继续使用那个工程。

        关于git中分支和标签的管理上的建议,大家可以参考这篇文章:Git分支管理策略 以及 一个成功的 Git 分支模型

        当然,本文并不打算说怎么规划你的分支和标签,因为我自己也没有闹明白,本文只说怎么创建、合并、删除分支以及标签,关于规划方面的请根据自己的需要来,可以看一下那两篇文章。

1、分支的创建

        当我们在git@osc创建一个项目的时候,勾选了初始化项目的话,是会创建一个有master分支的项目的,这也是之前创建项目的方式,此外还可以清空项目,然后推送本地已有的柜台仓库上去。但是这不是重点,重点是有了master,然后在此基础上创建分支,然后开发。

        在eclipse中创建分支,请在仓库视图中右键->"switch to"->"new branch",打开新建分支对话框:

        在对话框中指定新建的分支基于什么,推送和拉取的配置,分支名是什么等:

        新分支的基础默认是当前检出的分支,我们可以进行“选择”,可以在弹出框里面选择具体需要的,现在还没有创建标签,所以“tags”下面还是空的,以后有了标签,就可以基于标签创建分支了。名称可以按照自己的需要命名,只要符合命名要求就可以,不能重复这是必须的。推送和拉取的配置勾上就可以了。

        一切就绪,“确定”之后就已经在新的分支上了。

        可以看到,本地已经有了这个分支,但是远端上实际上还没有,因为我们还没有推送这个分支:


2、推送新建的分支

        在上一步骤中新建了分支"develop",,接下来将其推送到远端上去。

        在那条仓库记录上面右键->“remote”->"push",打开推送对话框:

        第一步是选择远端,也可以添加远端,以后有需要的可以配置,这里不需要管,直接下一步即可:

        接下来就是选择推送的内容和类型了,有分支啊、标签啊,添加、更新、删除等等,这里将要推送的分支选上,然后添加进列表即可:

        配置好之后就可以开始推送啦:

        剩下的就是下一步和结束啦。

        完成后可以在网页上和本地看到变化:


        经过实际使用,发现一个问题,那就是在新分支上第一次推送提交的时候还是会叫推送这个分支,不知道为何。

3、分支合并

        先在新分支上提交一次,让两个分支不一样。

        (和之前的提交一样)



        合并分支要讲究“主动方”和“被动方”的,要将develop合并到master中,需要先切换到master,然后将develop合并进来。

        先切换到master分支,在仓库记录上右键->"switch to"->"master"。


        然后再右键->"merge":


        在对话框中有一些合并的选项:


        首先大框中有可以选择来进行合并的项目,远端和本地分别显示的,因为有时候本地和远端是不同步的,除了分支还可以选择标签。

        下面有两组单选,第一组不用管,第二组一个表示不会创建额外的提交,第二个表示创建一个提交。

        这里选择合并本地的develop分支,创建一个合并提交记录:

        然后本地的文件就修改了,在“history”标签里面的记录成了这样:


        如果不创建合并提交的话本地的master和develop就会是重合的。

        接下来直接“push to upstream”即可。


4、创建并推送标签

        在仓库记录里面的“tags”上面右键->"create tag"打开创建标签对话框:

        在对话框中填写好需要的信息,然后选择“create and start push”,创建并推送标签,进入推送对话框:

        然后一直下一步和结束就可以了。

        等结束之后就可以在本地和远端的标签列表中个查看到了。:

5、删除分支、标签

        一般标签都不删除的,因为即使远端删除了,如果删除之前有人拉取了,那么在之后他的本地记录不会删除的,即使后面创建了一个相同的标签也不会被覆盖,那样就会造成不同步。所以最好的是创建标签之前就考虑好,如果确实需要更改也应该创建一个新的标签。

        分支也最好不要删除,即使该分支已经不需要了,那么也将其留在那里,以便将来使用。分支和标签的删除,本地直接右键选择删除就可以了,但是对远端的删除要麻烦一点。

        在仓库记录上面右键->“remote”->"push"打开推送对话框,然后下一步,进入编辑推送任务的对话框:

        要删除分支,在“delete”下拉选择需要删除的分支,然后“添加”将分支添加下面的任务列表,

        与之前的推送分支比起来,前面的“update”变成了“delete”,然后提交即可。

        标签的删除需要先添加所有的标签记录的任务,然后将目标明确修改为需要删除的标签 的名字,将前面的“update”修改为delete。

        修改之后是这样的:

        接下来就直接下一步和结束就可以了。

        从删除标签的方式可以看出,标签是真的真的不推荐删除的

6、小结

        分支和标签怎么创建、管理、合并、删除等,是需要综合考虑的,需要不断的根据实际总结和调整。这里只是说明一个操作的方法而已。

        到这里对于git的使用基本就差不多了,接下来是基于git的这些功能的maven的使用了。

        有不对的地方欢迎大家留言指出来。

        enjoy!!!