解决error: Your local changes to the following files would be overwritten by merge
在项目里我们一般都会把自己第一次提交的配置文件忽略本地跟踪
1
|
[Sun@webserver2 demo]$ git update-index --assume-unchanged <filename> |
但是项目里的其他人如果不小心把该配置文件修改push到远程仓库之后,我们git pull代码的时候就会报错
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[Sun@webserver2 demo]$ git add . [Sun@webserver2 demo]$ git commit -m 'update:index.php' [master f8a7428] update:index.php 1 file changed, 1 insertion(+), 1 deletion(-) [Sun@webserver2 demo]$ git pull remote: Counting objects: 5, done . remote: Compressing objects: 100% (2 /2 ), done . remote: Total 3 (delta 1), reused 0 (delta 0) Unpacking objects: 100% (3 /3 ), done . From git.oschina.net:sunzmit /thinkphp 1bc9485..c63dff3 master -> origin /master error: Your local changes to the following files would be overwritten by merge: config.ini |
大意是:您的本地更改的文件将被合并覆盖。并指出了会被覆盖的文件
解决方法:
1.撤销本地对文件的忽略
1
|
[Sun@webserver2 demo]$ git update-index --no-assume-unchanged config.ini |
2.从最近的一次提交中读取内容,备份当前的工作区的内容,将当前的工作区内容保存到Git栈中
1
2
3
|
[Sun@webserver2 demo]$ git stash Saved working directory and index state WIP on master: f8a7428 update:index.php HEAD is now at f8a7428 update:index.php |
3.pull远程仓库代码
1
2
3
4
|
[Sun@webserver2 demo]$ git pull Merge made by the 'recursive' strategy. config.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) |
4.从Git栈中读取最近一次保存的内容,恢复工作区的相关内容
1
2
3
|
[Sun@webserver2 demo]$ git stash pop Auto-merging config.ini CONFLICT (content): Merge conflict in config.ini |
5.修改合并
1
2
3
4
5
6
7
8
|
[Sun@webserver2 demo]$ vim config.ini <<<<<<< Updated upstream This is a test file !!!!!!!!!!!!!!!! ======= This is a test file >>>>>>> Stashed changes [Sun@webserver2 demo]$ cat test .txt This is a test file |
<<<<<<< Updated upstream到=======中是从远程仓库pull下来别人的内容,=======到>>>>>>> Stashed changes中是我们本地文件内容,现在我们可以删除其他,只保留自己的内容This is a test file
6.把文件回复到最新提交的版本,会保留修改内容
1
2
3
4
5
|
[Sun@webserver2 demo]$ git reset HEAD config.ini Unstaged changes after reset: M config.ini [Sun@webserver2 demo]$ cat test .txt This is a test file |
7.再次忽略本地跟踪,完成!
1
|
[Sun@webserver2 demo]$ git update-index --assume-unchanged config.ini |
8.最后不要忘记清除Git栈的备份
1
|
[Sun@webserver2 demo]$ git stash drop |
本文永久地址:http://blog.it985.com/10665.html
本文出自 IT985博客 ,转载时请注明出处及相应链接。
God, Grant me the SERENITY, to accept the things I cannot change,
COURAGE to change the things I can, and the WISDOM to know the difference.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix