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. 基于 HTML5 WebGL 的垃圾分类系统

    前言 垃圾分类,一般是指按一定规定或标准将垃圾分类储存.分类投放和分类搬运,从而转变成公共资源的一系列活动的总称.分类的目的是提高垃圾的资源价值和经济价值,力争物尽其用.垃圾在分类储存阶段属于公众的私 ...

  2. 夯实Java基础系列20:从IDE的实现原理聊起,谈谈那些年我们用过的Java命令

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  3. 五 mysql之多表查询

    目录 一 介绍 二 多表连接查询 1.交叉连接:不适用任何匹配条件.生成笛卡尔积 2.内连接:只连接匹配的行 3 .外链接之左连接:优先显示左表全部记录 4 .外链接之右连接:优先显示右表全部记录 5 ...

  4. JavaSE----03.数据类型

    03.数据类型 1.数据类型分类     Java是强类型语言,Java中的数据类型分为两大类,分别是基本数据类型和引用数据类型.其中,基本数据类型由Java语言定义,其数据占用内存的大小固定,在内存 ...

  5. 数据库审计 DBAudit - Yearning 最新版

    数据库审计 DBAudit 2019/09/26 Chenxin 数据库审计 基本概念 数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库 ...

  6. 用OllyDbg爆破一个小程序

    用OllyDbg爆破一个小程序 一.TraceMe小程序 TraceMe是对用户名.序列号判断是否合法的一个小程序.我们任意输入一组用户名.序列号进行check判断,结果如下: 二.用OllyDbg对 ...

  7. 运维自动化神器ansible之group模块

    ansible之group模块 group模块是用来添加或者删除组 首先使用ansible-doc来查看用法 [root@note0 ansible]# ansible-doc -s group - ...

  8. 帝国CMS 6.5功能解密:网站安全防火墙使用说明

    有关帝国CMS新版防火墙介绍可以查看:http://bbs.phome.net/showthread-13-136169-0.html 本文为大家讲解如何使用网站防火墙:一.配置“网站防火墙”有下面两 ...

  9. SystemMetrics

    头文件: #define NUMLINES ((int) (sizeof sysmetrics / sizeof sysmetrics [0]))struct { int iIndex ; TCHAR ...

  10. [NOIp2014] luogu P1351 联合权值

    哎我博 4 了. 题目描述 无向连通图 GGG 有 nnn 个点,n−1n−1n−1 条边.点从 111 到 nnn 依次编号,编号为 iii 的点的权值为 WiW_iWi​,每条边的长度均为 111 ...