到目前为止我们都还是在一个名为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!!!
来源:oschina
链接:https://my.oschina.net/u/932586/blog/608482