1.文件添加陷阱:
1).git 提交命令快捷键: git commit -a -m "",能够跳过git添加文件到暂存目录步骤
2)git add . git commit -m“” 添加所有非忽略文件到暂存目录中,然后添加到缓存目录中
陷阱:有时候会认为这是两个相同的命令,其实并不是,缩减版只会追踪已经在添加了追踪的文件,

对于新建的文件,缩减版会忽略掉,但是git add .能添加新的文件

可能造成的后果:文件丢失
比如在V1.1.0版本中,你在开发的项目的中增加了一个文件:readme.txt。然后使用缩减版命令保存了缓存。
然后在V1.1.1版本中,你修改了readme.txt 你更换了命令,使用了git add .,然后commit到缓存中
后来发现V1.1.1有个大问题,回退到V1.1.0版本中,这个时候,你会发现你的readme.txt 不见了,如果你不记得到readme.txt真正提交到缓存中的时间,你得一个一个的回退回去查找readme.txt
解决办法:经常使用git status,查看三个区域的状态,了解仓库信息。
2.git 忽略文件与被忽略文件消失陷阱
通常我们不想纳入版本控制管理的文件,我们会使用.gitignore进行管理。
陷阱:有时候在这之前我们发现我们想添加的需要忽略的文件在之前已经被add到了缓存中,我们会使用git rm -r --cached . 删除文件在缓存区的index中。这样看起来完全是合乎情理的。
可能造成的后果:文件丢失
复现方法:首先将一个文件添加到git管理中,然后提交到缓存中,然后添加.gitignore文件,在.gitignore文件中添加需要忽略的文件,运行git rm -r --cached . ,然后运行git add .,在添加到git缓存中这个时候,被忽略的文件就会没有git的图标显示了。这个时候配合git reset命令,回退到以前没添加忽略文件的版本中,然后再回退到添加了忽略文件后的版本中,你会发现,被忽略的文件消失了~~~
现象解释:其实知道了怎么怎么复现就大概知道了原因,在运行git rm -r --cached .与git add .后,在git看来,这两个文件突然不见了,git会处理为删除这两个文件。
解决方法:参看 .gitignore详解

git 陷阱小记的更多相关文章

  1. Git使用小记

    刚刚简答的完成了pureblog,想着先上传导Github上去,等着以后有时间了在完善其功能,所以使用Git上传导Github代码仓库上去,这里简答的记录以下使用小计. 我们首先下载Git,我们使用用 ...

  2. git命令小记

    1.git之tag git标签分为轻量级(lightweight)标签和含标注(annotated)标签.轻量级标签一般用于不会改变的分支,含标注的标签包含详细的信息. 轻量级标签: git tag ...

  3. git 学习小记之图形化界面客户端

    习惯了 Windows 的用户,一直不喜欢用类似命令行的东西来操作,当然我也不是不喜欢,只是操作太慢了.也许 Linux 大神在命令行的帮助下,办事效率翻倍,那也是非常常见的事情..当然我不是大神,所 ...

  4. git 学习小记之记住https方式推送密码

    昨天刚刚学了点git基础操作,但是不幸的是Git@OSC给出公告说尽量使用 https 进行操作.可是在用 https 进行 push 时,都需要输入帐号和密码. 各种百度谷歌之后在Git@OSC官网 ...

  5. git 学习小记

    话说 git 出了已经很久了,可是我一直没用过.其实也不是没用过,只不过在 github 上下载东西那根本就不是在用 git,只是单纯的HTTP下载而已.我们公司用的是 svn,所以我只会一点点svn ...

  6. git服务器的建立——Git折腾小记

    转自:http://blog.csdn.net/xsl1990/article/details/25486211 如果你能看到一些sshd相关的进程信息,则说明你已经有这个服务了,否则(或者你想更新的 ...

  7. git stash错误小记

    git出错小记 想要push代码,我们经常这样做. 1.查看状态 git status 2.隐藏本地编辑的新内容 git stash 3.拉远程的代码 git pull 这一步操作有的时候会报错,没有 ...

  8. Git 图解剖析(转)

    git中文件内容并没有真正存储在索引(.git/index)或者提交对象中,而是以blob的形式分别存储在数据库中(.git/objects),并用SHA-1值来校验. 索引文件用识别码列出相关的bl ...

  9. 6种常见的Git错误以及解决的办法

    我们都会犯错误,尤其是在使用像Git这样复杂的东西时.如果你是Git的新手,可以学习如何在命令行上开始使用Git.下面介绍如何解决六个最常见的Git错误. Photo by Pawel Janiak  ...

随机推荐

  1. Oracle 的 rownum 问题

    对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=),并非说用>,>=,=,be ...

  2. Python selenium+phantomjs的js动态爬取

    Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Chrome等.Phanto ...

  3. Go语言基础之net/http

    Go语言基础之net/http 2017年6月26日 Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现. net/http介绍 Go语言内置的net/http包提供了HT ...

  4. ELK 学习笔记之 elasticsearch Bulk操作

    Bulk操作: Bulk操作用于批量插入数据: 请求体格式: 编辑一个文件:(插入2个新的文档) curl -XPOST 'http://192.168.1.151:9200/library/book ...

  5. Kafka 学习笔记之 架构

    Kafka的概念: 1. AMQP协议 Advanced Message Queuing Protocol (高级消息队列协议) The Advanced Message Queuing Protoc ...

  6. ant path匹配原则

    ant path匹配原则 又称路径匹配原则,spring中的相关策略类org.springframework.util.AntPathMatcher 路径模式使用了apache ant的路径样式 ap ...

  7. 网页布局——Box盒子

    在移动端开发的时候,圣杯布局,弹性盒,是我们经常会用得到的,W3C很久以前就有一个display:box属性 flex是最新的,但是在实际的浏览器测试中,display: flex 不能完全替代dis ...

  8. SpringCloud系列-整合Hystrix的两种方式

    Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix是Netflix开源的一款容错框架,同样具有自我保护能力. 本文目录 一.H ...

  9. 主动降噪(Active Noise Control)

    智能耳机 人机交互 智能声学终端 智能耳机 智能音箱 智能听力器 喇叭单体 动圈喇叭 新材料 DLC 石墨烯 陶瓷单位 吸音材料 智能芯片 阵列式麦克风 声纹传感器 演算法 降噪算法 智能听力保护 A ...

  10. Hyper-V 下linux虚拟机静态IP上网配置的两种方式(2)

    工作需要,搭建linux环境,网上搜了两种Hyper-V配置linux静态IP及上网的方式,记录一下,方便查阅,如下设置网络共享方式: win10下使用hyper-v在本机安装linux虚拟机后,网络 ...