Git 分支管理-解决合并冲突
2017-02-22 10:43
661 查看
前边讲创建分支时遗留了一个问题,就是合并分支时遇到冲突的情况,比如我主分支也做了个修改,同时develop分支也有修改。我需要把develop开发分支提交到master分支,这时候如下:
咱们来分析分析上边的提示。在我们切换到master时(本身master我也做了修改,实际master要保证代码纯净),这时候提示里有一句"ahead of origin/master" 就是比远程分支master有超前几个版本,的确我为了测试在本地提交了几次(因为是自己的项目,与公司项目无关,严禁拿公司项目练习),但并没有push。看括号,提示用git push 来发布你本地的提交。push本身就是就是本地想远程提交。也就是说当本地比远程超前版本时,需要先提交。这个暂时不管,咱们先来解觉冲突。看下边merge后的提示:"Merge
conflict"合并后有冲突,自动合并失败,修正冲突然后commit合并后的结果。也就是需要先解决冲突。那我们来看看实际有冲突的文件的代码吧:
可以看出怎么回事吗?我们看到几个标示:<<<<<<<HEAD, =======,>>>>>>> develop
我们当前HEAD是指向master分支的,也就是 <<<<<HEAD与====之间属于master分支的。=====与>>>>develop之间属于develop分支的修改。
我们修改完后提交:
那具体合并后的分支情况是啥样呢。git也为我们提供了一个方便的查看办法:git log --graph
有个更简化的查看:git log --graph --pretty=oneline --abbrev-commit
咱们直接看下边简化的分支合并图吧,我们在commitID为f01d22f这条分支创建并切换的分支develop,然后合并后又回到master主线。这种图就是我们分支策略里的大图,develop分支从master分出,最后的稳定的版本需要合并到master分支。
zxdeMacBook-Pro:hswallpager zs$ git checkout master Switched to branch 'master' Your branch is ahead of 'origin/master' by 6 commits. (use "git push" to publish your local commits) zxdeMacBook-Pro:hswallpager zs$ git merge develop Auto-merging app/src/main/*****/Activity.java CONFLICT (content): Merge conflict in app/src/main/*****/Activity.java Automatic merge failed; fix conflicts and then commit the result
咱们来分析分析上边的提示。在我们切换到master时(本身master我也做了修改,实际master要保证代码纯净),这时候提示里有一句"ahead of origin/master" 就是比远程分支master有超前几个版本,的确我为了测试在本地提交了几次(因为是自己的项目,与公司项目无关,严禁拿公司项目练习),但并没有push。看括号,提示用git push 来发布你本地的提交。push本身就是就是本地想远程提交。也就是说当本地比远程超前版本时,需要先提交。这个暂时不管,咱们先来解觉冲突。看下边merge后的提示:"Merge
conflict"合并后有冲突,自动合并失败,修正冲突然后commit合并后的结果。也就是需要先解决冲突。那我们来看看实际有冲突的文件的代码吧:
public static Intent createIntent(Context context, int pageFlag) { Intent intent = new Intent(context, ActionActivity.class); intent.putExtra(ARGS_INIT_PAGE, pageFlag); <<<<<<<< HEAD Log.i(TAG,"master分支修改提交"); ======= Log.i(TAG,"develop分支修改的内容"); >>>>>>>> develop return intent; }
可以看出怎么回事吗?我们看到几个标示:<<<<<<<HEAD, =======,>>>>>>> develop
我们当前HEAD是指向master分支的,也就是 <<<<<HEAD与====之间属于master分支的。=====与>>>>develop之间属于develop分支的修改。
我们修改完后提交:
zxdeMacBook-Pro:hswallpager zs$ git add . zxdeMacBook-Pro:hswallpager zs$ git commit -m "合并后的修改" [master 073fc5c] 合并后的修改
那具体合并后的分支情况是啥样呢。git也为我们提供了一个方便的查看办法:git log --graph
zxdeMacBook-Pro:hswallpager zs$ git log --graph * commit 073fc5c3c4134587d6c9f6e2f41af0eed61a562f |\ Merge: 41754e3 b70f2af | | Author: zhangshun <hbzhangshun@126.com> | | Date: Wed Feb 22 11:17:02 2017 +0800 | | | | 合并后的修改 | | | * commit b70f2afd0c27dbf5956c8f723d7f617ad36deefa | | Author: zhangshun <hbzhangshun@126.com> | | Date: Tue Feb 21 17:09:18 2017 +0800 | | | | develop update | | * | commit 41754e3dca4e10ab67d44c8fd9007a246cfc08d2 |/ Author: zhangshun <hbzhangshun@126.com> | Date: Tue Feb 21 16:25:07 2017 +0800 | | 修改 | * commit f01d22f7495d98d9d5505b3727a95b8bbe3ac982 | Author: zhangshun <hbzhangshun@126.com> | Date: Mon Feb 20 14:21:46 2017 +0800 |
有个更简化的查看:git log --graph --pretty=oneline --abbrev-commit
zxdeMacBook-Pro:hswallpager zs$ git log --graph --pretty=oneline --abbrev-commit * 073fc5c 合并后的修改 |\ | * b70f2af develop update * | 41754e3 修改 |/
咱们直接看下边简化的分支合并图吧,我们在commitID为f01d22f这条分支创建并切换的分支develop,然后合并后又回到master主线。这种图就是我们分支策略里的大图,develop分支从master分出,最后的稳定的版本需要合并到master分支。
相关文章推荐
- GIT 分支管理:创建与合并分支、解决合并冲突
- Git教程----5.0分支管理 5.1创建与合并分支 5.2解决冲突 5.3分支管理策略 5.4Bug分支 5.5Feature分支 5.6多人协作
- GIT 分支管理:创建与合并分支、解决合并冲突
- GIT 分支管理:创建与合并分支、解决合并冲突
- GIT 分支管理:创建与合并分支、解决合并冲突
- GIT 分支管理:创建与合并分支、解决合并冲突
- git 的使用(5)-git的分支管理以及合并冲突解决
- git分支与版本管理、版本回退、冲突解决记录
- git分支管理与冲突解决(转载)
- 2016/01/13开始学习git:分支管理:解决冲突
- Git 分支管理和冲突解决
- Git合并分支出现的冲突解决
- Git解决分支冲突及分支管理策略
- GIT----入门资料,分支管理,冲突解决
- git分支的合并和冲突解决
- Git 分支管理和冲突解决
- git分支管理之解决冲突
- git分支合并冲突解决
- Git解决合并分支冲突
- Git分支管理与冲突解决