需求:

现在有一个比较复杂的功能点需要多人协同开发,IDE使用idea,Git服务端使用的是Microsoft Team Foundation Server。现在团队需要对每个人编写的代码进行代码评审。
因为多人使用了同一个功能分支进行开发,所以分支内混合了多人代码,这样很难进行评审。

实现目标:

在使用了混合代码分支开发的情况下(也是不可避免的),但能分离出只包含自己代码的分支作为最终提交代码。

具体操作:

要实现本需求,必须要懂得git的基本操作语法,比如查看提交记录,抽取commit,创建新分支,提交分支到远程服务器等。不过因为idea自带了强大的git插件。
所以我们只需要鼠标点点就可以实现。其核心,还是用到了git cherry-pick命令。

首先,你需要明确你需要将哪个分支合并到哪个分支。这里我将需要合并的源分支命名为fetures-saveFlow,目标分支为dev。

1.创新新的纯净的分支用于提交

checkout dev分支,产生一个dev的本地分支,命名为fetures-saveFlow-xxx。xxx是自己名字的拼音简写,表示这个功能分支上自己的代码。

2.挑拣提交组建新分支内容

挑拣fetures-saveFlow分支中,所有你提交的commit到新创建的fetures-saveFlow-xxx分支上。
如下图,branch选择fetures-saveFlow,User选择me,这个时候可以自己看到自己再这个分支上所有的提交,找到你在这个功能点上的所有提交,
一次右击 选择cherry-pick。这个时候 这个提交的内容 会 合并到当前分支上。如果存在冲突那个会弹出相应的冲突提示。

3.解决冲突并提交分支

如果合并的提交和当前分支的代码又冲突则会弹出一个冲突对话框

列表里显示的是有冲突的文件,针对每个冲突文件有三种处理方式:使用你的,使用他的,合并。也就是针对冲突的文件,直接放弃合并而直接使用你当前分支的文件,或者其他分支的文件。选择合并的话,会弹出个对话框,显示两边的差异。
左边显示的是当前分支的内容,右边显示的需要合并的代码的内容,中间的是合并的结果。一般都是选择合并,除非你确定需要丢弃对方或者自己的提交修改内容。

完事之后,按下快捷键ctrl+k提交合并,然后push推送到远程服务器即可。这个分支智慧包含dev的代码和你刚刚挑拣的代码。



届ける言葉を今は育ててる
最后更新于 2018-04-09