在项目里我们一般都会把自己第一次提交的配置文件忽略本地跟踪

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
 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 +-
 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博客 ,转载时请注明出处及相应链接。

最新文章

  1. Android Fragment 剖析
  2. Apache Shiro系列四,概述 —— Shiro的架构
  3. centos 7.0 ln命令 和chkconfig 命令介绍 开机自动启 服务
  4. nodejs-express 报错View is not a constructor
  5. CSS 会被继承的属性
  6. grouping sets,cube,rollup,grouping__id,group by
  7. [java学习笔记]java语言核心----面向对象之static关键字
  8. [未完成]关于java基础数据类型中的一些总结
  9. MSSQL 标准PROC 写法
  10. Android使用webService
  11. jdbc详解(三)
  12. dos批量替换当前目录后缀名
  13. 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法(转)
  14. JMS学习篇《一》ActiveMQ消息中间件的简单介绍与用法-概念篇
  15. 关于使用git上传远程仓库的两种情况(新项目与老项目)
  16. webservice之jax-rs实现方式
  17. 关于mysql存储过程中传decimal值会自动四舍五入的这个坑
  18. Linux 用top命令查看CPU和内存使用情况
  19. PAT A1103 Integer Factorization (30 分)——dfs,递归
  20. 限制访问次数例子和Ajax的some

热门文章

  1. 【OC语法快览】二、存取方法
  2. ssh 远程执行命令 -t
  3. angular学习笔记(三)-视图绑定数据的两种方式
  4. ny27 水池数目
  5. Django实现任意文件上传(最简单的方法)
  6. navicat如何导入sql文件和导出sql文件
  7. vs2010程序运行出错 link : fatal error lnk1123: 转换到 coff 期间失败: 文件无效或损坏
  8. loadrunner11 测试restful
  9. git hook部署代码
  10. C10K并发连接_转