[git相关技术]
使用git pull遇到Automatic merge failed; fix conflicts and then commit the result
使用git pull遇到Automatic merge failed; fix conflicts and then commit the result.解决方案卓伊凡 其实完整报错是 git 遇到 + 6a78e54…5cfa9dc master -> origin/master (forced update)
Auto-merging app/Http/Controllers/Api/V1/Admin/ConfigController.php
CONFLICT (content): Merge conflict in app/Http/Controllers/Api/V1/Admin/ConfigCo
ntroller.php
Auto-merging app/Http/Controllers/Api/V1/OrderController.php
CONFLICT (content): Merge conflict in app/Http/Controllers/Api/V1/OrderControlle
r.php
Auto-merging composer.json
Auto-merging routes/api.php
Automatic merge failed; fix conflicts and then commit the result.
问题 解决方案 解决 Git 强制更新导致的合并冲突你遇到的问题是由于远程仓库 (origin/master) 被强制更新 (forced update),而你的本地分支尝试合并时发现了冲突。 问题分析- 远程仓库有人执行了 git push --force 强制覆盖了历史
- 你尝试拉取更新时,Git 发现了多个文件的冲突
- 自动合并失败,需要手动解决冲突
解决方案方法1:接受远程更改(放弃本地修改)如果你想完全接受远程仓库的更改,放弃本地的修改: git fetch origingit reset --hard origin/master⚠️ 警告:这将丢弃你本地所有未提交的更改和提交! 但是 基本上 看哪边最新,按道理 我提交的gitee 最新的 所以采用 不保留本地。 方法2:手动解决冲突(保留本地修改)如果你想保留本地有价值的修改,需要手动解决冲突: 方法3:创建新分支保留工作如果你想更安全地处理: git checkout -b temp-branch # 创建新分支保存当前工作git checkout mastergit fetch origingit reset --hard origin/master # 重置master到远程状态# 然后可以cherry-pick或merge temp-branch中的特定提交预防措施为避免将来出现类似问题: - 尽量避免使用 git push --force
- 如果必须强制推送,确保团队其他成员知道
- 考虑使用 git push --force-with-lease 代替强制推送
不过 这个问题 是不可避免遇到的,整体我们知道 gitee上面已经是最新代码了就行,其他同事拉一下就强制覆盖本地。
|
|
|
|
|