git按需过滤提交文件的一个细节
问题场景
用git管理代码时,作为git小白的我总会遇到一些无法理解的问题,在请教了一些高手后终于解开了疑惑,参考以下场景:
1.比如我们已在电脑1上完成用vs编辑项目、添加、提交到服务器的完整流程,如下图1
图1 正常代码提交流程
2.git status命令查看未提交项,则会显示没有可提交项;
3.再次用vs编辑器打开项目,可以无任何操作;
4.再次使用git status命令查看未提交项,如下图
从上图可以看到即使你没有做任何操作,也会有很多未被提交的文件被提示出来,如果有时因为我们疏忽的以为文件没有变化(其实在打开工程的那一刻后台文件已发生了变化),关电脑然后在其他电脑(电脑2)上编辑本工程,再按图1的流程将代码提交。再到电脑1上git pull时,就会出现还有本地文件未被add的问题。
解决问题
要解决此问题,需要在.gitignore文件中添加一些需要屏蔽的一些编辑器后台操作后的文件类型或名称,使无意中打开工程浏览代码后无副作用。
如果我们在上传第一个代码版本时没有屏蔽如.suo、.ide之类的文件,即使后面将这些文件类型添加到.gitignore,使用git status命令始终会一直出现未提交关于这些文件的更改,如下图。
要解决此问题,首先要将.suo或.ide文件类型加入到.gitignore文件,然后使用git rm -r --cached filename删除服务器上这两类文件。
这样再次使用git status命令查看未提交文件时,就会只显示你编辑过的文件,编译器后台操作的文件就不会再提示了。
屏蔽.ide文件之[为什么删除ide文件时提示没有匹配到文件呢?]
首先考虑以下示例:
这是路径问题:
ide文件都在RealEstate目录下了,路径要改成最后框选的那个。
删除命令如下:
git rm -r --cached /i/mypros/RealEstate/.vs/RealEstate/v16/Server/sqlite3/storage.ide
这样就可以删除成功了。
以上为个人的一些心得,如有总结的错误请谅解并指出错误或更好的解决办法。
想要了解更多,请关注个人微信公众号 夜无澜。
最新文章
- GitHub上那些值得一试的JAVA开源库--转
- SQL Server 监控统计阻塞脚本信息
- Python-Mac 安装 PyQt4
- windows WSABUF 结构在IOCP 中应用时两个成员变量的意义
- 浏览器缓存详解:expires,cache-control,last-modified,etag详细说明
- Linq ExecuteQuery,ExecuteCommand
- nyoj 71 独木舟上的旅行
- jquery总结(1)
- mybatis源码分析(1)——SqlSessionFactory实例的产生过程
- oracle 导入报错 ORA-00959: tablespace 'HB' does not exist
- [Struts2学习笔记] -- 自定义类型转换
- JAVA随笔篇一(Timer源代码分析和scheduleAtFixedRate的使用)
- 图像实验室 website 项目日志
- vc图像合成
- chan array初始化
- 基于python语言的经典排序法(冒泡法和选择排序法)
- coursera国际法笔记 持续更新
- SQL删除指定列的指定长度的字符
- class configured for Signature (provider: BC) cannot be found
- 命令行连接mysql服务器时 报Can't connect to local MySQL server through socket 'xxx.sock'错误
热门文章
- 二、vim的保存文件和退出命令
- JUC—Callable接口
- [NOI2010] 超级钢琴 - 贪心,堆,ST表
- Visibility Graph Analysis of Geophysical Time Series: Potentials and Possible Pitfalls
- A conflict in the working copy obstructs the current operation
- 小tips:使用vue-cli脚手架搭建项目,关于eslint语法检测配置
- H5 App设计者需要注意的问题
- 易错之 Java字符串比较
- jenkins新建任务详解
- 【做题笔记】CF1311A、B、C