git:给别人提merge时,发生冲突怎么办

在使用git给别的分支提merge时,有可能会发生冲突。这时候怎么做?

 

第一种方法: git pull 

比如我们想提merge给master分支。

在本地打开git bash ,使用命令git pull origin master

此时pull命令会失败,会提示某些文件有冲突,当前git的状态也会显示成MERGING。

然后我们执行git status的命令,查看新合的master分支有哪些改动,已经你的分支与其冲突的地方。

修改冲突,

然后git add ,git commit , git push。就可以了。

 

第二种方法git rebase 

第一种方法有一个不好的地方在于,git push后,使用

git log --graph --pretty=oneline --abbrev-commit

查看会发现你的git commit 历史已经被打乱了。

如下:

$ git log --graph --pretty=oneline --abbrev-commit
* d1be385 (HEAD -> master, origin/master) init hello
*   e5e69f1 Merge branch 'dev'
|\  
| *   57c53ab (origin/dev, dev) fix env conflict
| |\  
| | * 7a5e5dd add env
| * | 7bd91f1 add new env
| |/  
* |   12a631b merged bug fix 101
|\ \  
| * | 4c805e2 fix bug 101
|/ /  
* |   e1e9c68 merge with no-ff
|\ \  
| |/  
| * f52c633 add merge
|/  
*   cf810e4 conflict fixed

如何避免这种结果呢?

就是Git rebase .

方法:

假如需要解决当前分支与master分支的冲突。

1)git rebase master

2) 如果有冲突,rebase会中断,显示如图所示信息。

3、使用git status查看状态。显示为REBASE的状态。

4、解决冲突后执行:

git add filename

git rebase continue

5、如果还有冲突,需要继续解决冲突。

6、rebase结束后,执行git push。再合并就没有问题了。而且git log显示 commit没有打乱。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值