git 手动master_$ git pull origin master报错 ,如何解决冲突?

第一种就不要用了,合并的分支最好都是有共同历史提交,不加这个参数比较安全。

第二种,首先你需要 rebase 和 merge 的区别。简单解释一下,假设我们现在的分支结构如下:

如果采用 merge,会形成一个新的提交点。如下:

如果是 rebase,那么提交结构将变成如下形式,即在 v3 基础上重建 v4,而非形成新的提交点。

如果是同一个分支,一般会采用 pull rebase 进行合并,即不会形成新的提交点。而默认 git pull 是通过 merge 合并。

如果发生冲突的话,无论是 merge,还是 rebase,都需要先解决冲突,这个过程需要通过手动解决。比如发现一个文件发生冲突。手动解决完冲突后,用 git add 把处理好的内容提交到暂存区。接下来的处理,merge 和 rebase 的操作不同。

如果是 merge,通过 git commit 即可。如果是 rebase,通过 git rebase --continue,继续执行 rebase 即可。

一个简单的例子。

假设 pull 之后,某个文件内容如下:

<<<<<<< HEAD

func main() {

=======

const a = 1

>>>>>>> feature1

我们需要手动解决文件冲突,修改之后的内容如下:

const a = 1

func main() {

接着,执行 git add 把文件提交到暂存区,接着通过 git commit 提交到仓库,最后,通过 git push 提交到远程。

假设是 rebase,只需要将 git commit 修改为 git rebase --continue 即可。

如果对 git 的整体架构不是很了解,建议去看看我很早之前写的一篇介绍 Git 架构的文章。波罗学:谈谈版本管理GIT之理论与架构​zhuanlan.zhihu.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值