软件开发架构师

git分支合并及冲突解决

问题 12 2019-02-25 15:08

小明在愉快的敲代码

vim ok

他在ok里敲了simachanping

git commit -am "commit first version by xiaoming"

然后这时他接到了产品的电话,说有一个新需求要做名字是iss53,小明就打算新建一个iss53分支来实现需求

git checkout  -b iss53

vim ok

他在ok里面敲了simaceshi

git commit -am "solve iss53 ing"

现在在iss53分支里ok的内容是

simachanping

simaceshi

此时小明正愉快的在iss53实现新需求,很不巧这时测试过来说,你之前的master版本有一个bug,要你去解决。于是你就回到master分支,新建一个hotfix分支,解决bug。

git checkout master

git checkout -b hotfix

vim ok

他在ok里面敲了 simalaoban

git commit -am "solve hotfix"

此时小明已经解决了hotfix这个bug,所以可以合并到master分支

git checkout master

git merge hotfix

git branch -d hotfix

到这里hotfix就已经解决了

此时在master的ok里内容是

simachanping

simalaoban

然而他想起来还有一个iss53未解决完呢

git checkout iss53

vim ok

他在ok里面敲了simagongsi

git commit -am "solve iss53"

此时iss53分支ok里的内容是

simachanping

simaceshi

simagongsi

回到master

git checkout master

此时master分支ok的内容是

simachanping

simalaoban

合并iss53

git merge iss53

因为这两个分支的第二行不一样,所以产生了冲突,手动进入文件,修改

vim ok

修改成

simachanping

simaceshi&simalaoban

simagongsi

然后在git add把冲突标记为已解决的状态

git commit -m 'solve iss53 and hotfix"

git push origin master

文章评论