前一篇文章介绍了git分支迭代的第一步,下面就来讲下一步
2.在新建的本地分支上开发
我在之前的基础上加了一句打印语句System.out.println("我是branch1")来模拟我们的代码改动
可以看到左侧目录中MyController变成了蓝色,证明我们已经修改过这个文件并且还没有提交到本地仓库
在我们会遇到很多情况,下面我就来介绍一下可能的情况及解决办法:
1.很顺利,我们在开发过程中没有其他干扰,代码写完直接commit,commit之后再push即可,这种情况就不介绍了
2.开发过程中你们经理又给了你新的任务,并且新任务和之前的任务在不同时间上线
这种情况肯定是需要再重新开一个本地分支,然后将新任务的代码写在新分支里。这里使用上一篇文章的方法新建分支就好,但是要注意!这种情况会导致我们在开发过程中频繁的切换分支,我们在各种分支之间切换的时候,强烈建议要先将当前分支的修改commit之后再切到别的分支。如果当前分支有内容未提交,那在切换分支的时候会提示:
这是由于你当前分支有未提交的内容,正常使用git客户端的话如果现在切换分支,你会丢失你之前修改的内容(很容易理解,就是你之前修改的没保存,现在你又想把当前的关了打开另一个,这样肯定会丢失)。
idea这边会有一个操作,如果你在这种情况下执意要切换分支,它会有两个选项,Force Checkout和Smart Checkout,强制切换和智能切换。如果选择强制切换会放弃你未提交的修改,然后切换到你要切换的分支,如果选择智能切换,idea会自动帮你先把未提交的内容stash,然后再切换分支,切换完成之后再unstash,在unstash的时候会打开冲突解决的界面:
这样可以让你选择是否将未提交的内容合并到你要切换到的分支。
但是!无论是选择哪种,你在原分支上做的修改都会消失。
3.开发结束把我们的代码合并到master分支。
开发结束后,我们master,dev和branch1三个分支的代码分别是:
现在假设我们在branch1里面写的代码要先上线,首先将branch1合并到master
第一步,将分支切换到master
第二部,选择merge into current,意思是将branch1合并到当前分支(因为已经切换到master,所以当前分支就是master)
第三步,如果合并过程中没有冲突,则直接成功,如果有冲突会显示冲突解决界面,解决冲突后合并完成。
等待dev分支的代码要上线的时候我们就可以按照上面的步骤再将dev分支的代码合并到master
至此,结束