公司里的项目部署在私有的GitLab站点上,项目的 master
分支不能直接进行 git push
操作,只能通过将其他分支合并到 master
分支来上线新功能。
比如我基于 master
分支创建了一个名为 dev-1130
的分支做功能开发。当功能开发完成后需要合并到 master
分支,却发现 master
分支上已经有同事提交了自己的分支,提示有代码合并冲突,不能自动合并。
那么这种情况下该如何合并当前的分支呢?
其实解决方法有很多,下面说一种。其他的方法后续补充。
相关
2019-10-21 更新:
分之合并法
查看当前分支状态
1 2 3
| ➜ git status On branch dev-1130 nothing to commit, working tree clean
|
拉取当前分支最新代码
1 2
| ➜ git pull origin dev-1130:dev-1130 Already up to date.
|
切换到master分支
1 2 3
| ➜ git checkout master Switched to branch 'master' Your branch is up to date with 'origin/master'.
|
拉取master分支最新代码
1 2
| ➜ git pull origin master:master Already up to date.
|
手动合并dev-1130到master分支
1 2 3 4
| ➜ git merge dev-1130 Auto-merging hello_world/hello.py CONFLICT (content): Merge conflict in hello_world/hello.py Automatic merge failed; fix conflicts and then commit the result.
|
提示代码冲突,手动解决
提交更改
1 2 3 4
| ➜ git add .
➜ git commit -m "解决冲突" [master 9c7471f] 解决冲突
|
查看当前分支状态
1 2 3 4
| ➜ git status On branch master Your branch is ahead of 'origin/master' by 3 commits. (use "git push" to publish your local commits)
|
将当前master分支提交到远端的dev-1130分支
注意这里,是将本地我们解决冲突合并之后的 master
分支代码提交到远端的 dev-1130
分支上。
1 2 3 4 5 6 7 8
| ➜ git push origin master:dev-1130 Counting objects: 4, done. Delta compression using up to 8 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 548 bytes | 548.00 KiB/s, done. Total 4 (delta 2), reused 0 (delta 0) To mycompany_gitlab:Leafney/hello_world.git 49c7684..9c7471f master -> dev-1130
|
拉取远端的dev-1130分支到本地的dev-1130分支
1 2 3 4
| ➜ git pull origin dev-1130:dev-1130 From mycompany_gitlab:Leafney/hello_world 49c7684..9c7471f dev-1130 -> dev-1130 Already up to date.
|
至此,操作完毕。