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 
这样就可以删除成功了。
以上为个人的一些心得,如有总结的错误请谅解并指出错误或更好的解决办法。
想要了解更多,请关注个人微信公众号 夜无澜。

git按需过滤提交文件的一个细节的更多相关文章
- [Git & GitHub] 利用Git Bash进行第一次提交文件
转载:https://blog.csdn.net/dietime1943/article/details/72420042 利用Git Bash进行第一次提交文件 快下班的时候,MD群里有人问怎么向g ...
- git gui 还原部分提交文件
有时候用git提交文件的时候会一起提交了多个文件,但是突然后悔了,想把其中一个文件撤销提交,其他文件不做修改.这个时候该怎么办呢? 我觉得有很多办法,比如可以先checkout到上次的提交,然后复制要 ...
- Git .gitignore使用 -- 过滤class文件或指定目录
1. 进入当前的项目根目录 执行 git init touch .gitignore 2. 过滤class文件或指定目录 *.class /target/ 3. 提交 git add . 将所有文件提 ...
- git上传过滤忽略文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等 在主目录下建立".gitignore"文件,此文件有如下规则: 忽略文件中的空行或以井号(#)开始的 ...
- Git本地有未提交文件,直接拉取远端最新版本
git pull = git fetch + git merge 1.修改不同的文件: 用户D和用户L在本地提交中修改了不同的文件,如果用户D将改动推送到服务器后,用户L再推送就会遇到非快进式推送错误 ...
- IntelliJ IDEA版本控制——过滤提交文件
File——>Settings——>File Types 在ignore files and folders中添加提交是需要忽略的文件 例如:*.iml;*.idea;*.gitignor ...
- git根据用户过滤提交记录
使用SourceTree 使用gitk
- 手把手教你提交文件到git
手把手教你使用git提交到github 作者 数据分析与优化 关注 2016.07.17 10:25 字数 7342 阅读 399评论 1喜欢 6 摘要Git是分布式版本控制系统,那么它就没有中央服务 ...
- Git学习之路(3)-提交文件到三个区
▓▓▓▓▓▓ 大致介绍 年过的差不多了,开始学习!小白学Git(持续更新) Git有三个工作区域: ◆ 工作区(Working Directory) ◆ 暂存区(Stage) ◆ 版本库(Reposi ...
随机推荐
- MySQL语法规范
不区分大小写(规范:关键字大写,表名列名小写) 每条命令用 :结尾 每条命令可以根据需要进行 缩进或换行. 最标准的模板: 关键字 对象 关键字 对象 注释:用于解释说明,编译器会自动忽略 单行注释: ...
- 在cc.EventListener.TOUCH_ONE_BY_ONE事件中判断拖动物离哪边近飞向那边
需将拖动物坐标和要飞向物坐标转化为整个layer的坐标,因为人们判断远近是根据整个layer来看的.
- JavaScript的jQuery
JavaScript的jQuery 不通过JavaScript的原生代码,如document.getElementById("") 而是通过jQuery的$符号选择器. jQuer ...
- 浏览器缓存信息(Autocomplete )
Autocomplete HTML Attribute Not Disabled for Password Field 漏洞详细Web系统被识别到支持自动完成功能,这样通过浏览器可以获取到敏感信息. ...
- Java中new一个子类对象的同时并不会自动创建一个父类对象
首先重申一个概念:子类会继承父类所有非私有成员变量和方法,包括父类的构造方法 当创建一个子类对象时,首先开辟内存,然后调用类的构造函数,这里的构造函数由两部分组成,一部分是从父类继承而来的父类的构造方 ...
- [P4550] 收集邮票 - 概率期望,dp
套路性地倒过来考虑,设\(f[i]\)表示拥有了\(i\)种票子时还需要多少次购买,\(g[i]\)表示还需要多少钱 推\(g[i]\)递推式时注意把代价倒过来(反正总数一定,从顺序第\(1\)张开始 ...
- Safari 导航栏
目录 引子 隐藏 Safari 导航栏 显示 Safari 导航栏 iPhone 系统占比 参考资料 引子 最近在 iPhone 的 Safari 查看 h5 页面时,发现有些平台的页面向下滚动时,顶 ...
- django入门与实践(续)
完善博客 博客页面设计 页面概要 1.博客主页面 主页面内容 文章标题列表,超链接 发表博客按钮(超链接) 列表编写思路 取出数据库中所有文章对象 将文章对象们打包成列表,传递到前端 前端页面把文章以 ...
- 第一个Mybatis项目
第一个Mybatis项目 一.创建普通Maven项目 1.配置pom.xml文件 <dependencies> <!--mysql驱动--> <dependency> ...
- FFmpeg—— Bitstream Filters 作用
原文链接: https://stackoverflow.com/questions/32028437/what-are-bitstream-filters-in-ffmpeg Let me expla ...