当前位置: 首页 > news >正文

【笔记】【Git】多个dev分支合并到master分支的文件冲突

问题描述

多个dev分支在同步开发,同时发起代码评审,但合入master的时候存在先后顺序,那么后面同文件的操作则会提示“合并有文件冲突”,导致代码无法入库,只能重新提交。

在个人分支中如何解决与master分支差异,从何顺利提交评审合入代码?

参考方案

1、按照下面的流程还是没办法在本地已经提交代码的时候正常合并到最新分支代码

# 切换到master分支 
git checkout Android_V_master# 更新master分支代码
git pull Android_V_master# 切回dev分支
git checkout Android_V_dev# 合并master的代码
git merge Android_V_master

2、不知道为什么提交到同一个dev分支的时候,提示找不到这个分支,所以push报错了。

Note:删除分支

# 删除Test_V_dev分支
git push origin --delete Test_V_dev# 如下删除只是本地操作
git branch -D Test_V_dev

处于要删除的分支时,是无法删除的。

Git相关知识

在本地多次merge手动解决冲突的时候,报错 [rejected] (stale info)

分支 [rejected] 报错通常发生在尝试推送一个分支到远程仓库时,远程分支的信息已经发生了变化,从而导致推送操作失败。这种情况通常是因为多个开发者同时对同一个分支进行了更改,或者远程分支已经被更新但本地仓库并未同步的情况下出现。

要解决这个问题,可以先使用 git pull 命令拉取远程仓库的更新到本地,解决可能出现的冲突,然后再尝试推送本地的更改。如果还是存在问题,可以尝试强制推送(git push -f),但需要注意这样可能会覆盖他人的更改,所以要慎重使用。

git push 强制推送代码失败
git push 强制推送代码失败

 

fetch和rebase哪个先执行才正确保证代码不冲突?

在进行代码更新时,一般来说,先执行fetch,再执行rebase可以更好地保证代码不冲突。

fetch命令用于从远程仓库获取最新的提交记录,但不会将远程分支合并到本地分支。这意味着你可以在本地查看远程仓库的更新情况,然后决定是否要进行合并。

rebase命令用于将本地的未推送的提交变基到最新的远程提交之上。这样可以保持项目历史记录的整洁,并避免产生不必要的合并提交。执行rebase之前,首先要确保你的本地分支是基于最新的远程分支的,这就是为什么需要先执行fetch

因此,先执行fetch可以帮助你了解远程仓库的最新状态,然后再执行rebase可以确保你的本地提交与远程提交保持同步,同时尽量避免冲突产生。

相关文章:

  • webpack和vite区别
  • c++相关的数据结构
  • 【1】kettle的使用(全网最新版)
  • 深入理解java设计模式之单例模式
  • IEEE802.11a中的同步
  • Java18新特性总结
  • kubesphere踩过的坑,持续更新....
  • 《C++ Primer》导学系列:第 4 章 - 表达式
  • [CODE:-5504]没有[SYS.SYSOBJECTS]对象的查询权限
  • 应变玻璃合金是航天产业重要弹性材料 研究开发意义重大
  • 北京十大金牌律师事务所(2024年权威高胜诉率推荐)
  • 轨迹优化 | 图解欧氏距离场与梯度场算法(附ROS C++/Python实现)
  • 模拟14位相机输出Verilog代码
  • CoppeliaSim机器人模拟器与Matlab Simulink环境
  • nodejs——原型链污染
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Angular 2 DI - IoC DI - 1
  • CSS 专业技巧
  • Debian下无root权限使用Python访问Oracle
  • Docker入门(二) - Dockerfile
  • es6(二):字符串的扩展
  • JavaScript服务器推送技术之 WebSocket
  • Python中eval与exec的使用及区别
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 计算机在识别图像时“看到”了什么?
  • 近期前端发展计划
  • 老板让我十分钟上手nx-admin
  • 用Canvas画一棵二叉树
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​水经微图Web1.5.0版即将上线
  • #includecmath
  • #include到底该写在哪
  • #Linux(Source Insight安装及工程建立)
  • %check_box% in rails :coditions={:has_many , :through}
  • (黑马C++)L06 重载与继承
  • (九)信息融合方式简介
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (转载)Google Chrome调试JS
  • **CI中自动类加载的用法总结
  • .net 4.0发布后不能正常显示图片问题
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .net反编译工具
  • .net知识和学习方法系列(二十一)CLR-枚举
  • :中兴通讯为何成功
  • @Autowired @Resource @Qualifier的区别
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ C++ ] STL---仿函数与priority_queue
  • [15] 使用Opencv_CUDA 模块实现基本计算机视觉程序
  • [20161101]rman备份与数据文件变化7.txt