GIT提交代码遇到冲突的解决办法

1.冲突情形

Git命令在提交代码前,没有使用git pull命令拉取最新的代码,因此再次提交出现的冲突:

解决方法有如下两种:

  1. 保留你本地的修改

git merge --about

git reset --merge

合并后记得一定要提交这个本地的合并(add—>commit—>push—>pull)

然后执行git pull获取线上仓库。

2. dowm下线上代码版本,抛弃本地的修改

不建议这样做,但是如果你本地修改不大或者有一份备份留存,可以直接用线上最新版本覆盖到本地。

git fetch --all

git reset –hard origin/master

git fetch

2. 冲突情形二 

从git远程仓库中pull最新的代码,出现如下错误:Please commit your changes or stash them before you merge.

解决方法如下:

  1. git stash  //暂存代码
  2. git pull 分支名 //从远程仓库拉取最新代码
  3. git stash pop //合并代码到本地仓库,此时代码是将暂存的代码和远程仓库的代码合并
  4. 这时候需要手动修改合并所需的代码即可
  5. git stash clear //清空git栈

git stash可以用来暂存当前正在进行的工作,比如想pull最新代码,又不想加新commit,或者另外一种情形,为了fix一个紧急的bug,先stash,使返回到自己上一个commit,改完bug之后再stash pop以继续原来的工作。

以下是stash常用命令:

命令

功能

git stash

备份当前工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前工作区内容保存到Git栈中

git stash pop

从Git栈中读取最近一次保存的内容,恢复工作区的相关内容

git stash list

显示Git栈内的所有备份

git stash clear

清空Git栈

3. 冲突情形

 本地回退历史版本,当提交代码发生冲突或想会退到某一个版本,操作如下:

  1. git log(获取提交的历史日志)
  2. 执行命令:git reset --hard 版本号(就是git log中的commit 后面的哈希值,上图中的黄色部分commit后面的值)
  3. 想要修改远程上的代码还要执行如下命令:

git push –u 代码所在的分支 –f//强制提交,此时远程上的代码已被覆盖(不建议使用)

### 解决Mac上Git提交代码时遇到的冲突 在Mac操作系统中解决Git提交代码时出现的冲突主要涉及几个关键步骤。当`git pull`命令尝试合并远程代码仓库中的更新时,如果发现与本地修改代码存在冲突,则Git将无法自动完成这一过程[^2]。 #### 查看当前状态并识别冲突文件 首先应当查看当前的工作目录状态来确认哪些文件处于合并的状态: ```bash git status ``` 此命令会显示所有发生冲突的文件列表以及它们的具体路径。 #### 编辑冲突文件解决问题 对于每一个被标记为有冲突的文件,打开该文件并通过编辑器手动调整内容直到消除差异为止。通常,在这些文件内部可以看到如下形式的内容片段用于指示不同版本之间的区别: ``` <<<<<<< HEAD // 本地改动部分... ======= // 远程改动部分... >>>>>>> branch-name ``` 需要移除上述特殊标志符,并保留期望的结果作为最终版保存下来。 #### 添加已解决的文件至暂存区 一旦解决了所有的冲突之后,应该把这些已经修正过的文件加入到索引(即准备提交)之中: ```bash git add . ``` 这一步骤告诉Git那些之前有问题的地方现在已经得到了妥善处理。 #### 完成合并操作 最后一步是要正式结束这次合并活动并向历史记录里添加一条新的commit记录: ```bash git commit -m "Merge changes from remote" ``` 通过这种方式不仅完成了对现有问题的有效修复同时也保持了良好的版本控制习惯。 #### 使用IDE工具辅助解决冲突 除了命令行方式外还可以借助像IntelliJ IDEA这样的集成开发环境来进行更便捷的操作。这类软件往往内置了图形化的界面帮助开发者更加直观地理解和管理复杂的变更情况。例如,在Idea里面可以通过右键点击项目->Git->Resolve Conflicts菜单项启动专门针对冲突解析的功能模块[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值