前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git解决error: Your local changes to the following files would be overwritten by merge

git解决error: Your local changes to the following files would be overwritten by merge

作者头像
拓荒者
发布2019-09-25 11:08:54
3K0
发布2019-09-25 11:08:54
举报
文章被收录于专栏:运维经验分享运维经验分享

解决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.

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方法:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档