一、前言
git add命令主要用于把我们要提交的文件的信息添加到索引库中。当我们使用git commit时,git将依据索引库中的内容来进行文件的提交。

二、基本
git add <path>表示 add to index only files created or modified and not those deleted 
我通常是通过git add <path>的形式把我们<path>添加到索引库中,<path>可以是文件也可以是目录。
git不仅能判断出<path>中,修改(不包括已删除)的文件,还能判断出新添的文件,并把它们的信息添加到索引库中。

三、git add -u
git add -u 表示 add to index only files modified or deleted and not those created 
git add -u [<path>]: 把<path>中所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件。
省略<path>表示.,即当前目录。

四、git add -A
git add -A: [<path>]表示把<path>中所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。
省略<path>表示.,即当前目录。

五、git add -i
我们可以通过git add -i [<path>]命令查看<path>中被所有修改过或已删除文件但没有提交的文件,
并通过其revert子命令可以查看<path>中所有untracted的文件,同时进入一个子命令系统。
比如:
 git add -i
           staged     unstaged path
  1:        +0/-0      nothing branch/t.txt
  2:        +0/-0      nothing branch/t2.txt
  3:    unchanged        +1/-0 readme.txt

*** Commands ***
  1: [s]tatus     2: [u]pdate     3: [r]evert     4: [a]dd untracked
  5: [p]atch      6: [d]iff       7: [q]uit       8: [h]elp
What now>
这里的t.txt和t2.txt表示已经被执行了git add,待提交。即已经添加到索引库中。
readme.txt表示已经处于tracked下,它被修改了,但是还没有被执行了git add。即还没添加到索引库中。
5.1、revert子命令
可以通过git add -i的revert子命令(3: [r]evert)把已经添加到索引库中的文件从索引库中剔除。
(3: [r]evert)表示通过3或r或revert加回车执行该命令。执行该命令后,git会例出索引库中的文件列表.
然后通过数字来选择。输入"1"表示git会例出索引库中的文件列表中的第1个文件。
"1-15"表示git会例出索引库中的文件列表中的第1个文件到第15个文件.回车将执行。
如果我们不输入任何东西,直接回车,将结束revert子命令,返回git add -i的主命令行。
5.2、update子命令
可以通过update子命令(2: [u]pdate)把已经tracked的文件添加到索引库中。其操作和revert子命令类似。
5.3、add untracked子命令
通过add untracked子命令(4: [a]dd untracked)可以把还没被git管理的文件添加到索引库中。其操作和revert子命令类似。
5.4、diff子命令
可以通过diff子命令(6: [d]iff)可以比较索引库中文件和原版本的差异。其操作和revert子命令类似。
5.5、status子命令
status子命令(1: [s]tatus)功能上和git add -i相似
5.6、quit子命令
quit子命令(7: [q]uit)用于退出git add -i命令系统

六、帮助
我们可以通过git add -h命令来看git add命令的帮助文档。
 git add -h
usage: git add [options] [--] <filepattern>...

-n, --dry-run         dry run
    -v, --verbose         be verbose

-i, --interactive     interactive picking
    -p, --patch           select hunks interactively
    -e, --edit            edit current diff and apply
    -f, --force           allow adding otherwise ignored files
    -u, --update          update tracked files
    -N, --intent-to-add   record only the fact that the path will be added later
    -A, --all             add changes from all tracked and untracked files
    --refresh             don't add, only refresh the index
    --ignore-errors       just skip files which cannot be added because of errors
    --ignore-missing      check if - even missing - files are ignored in dry run

最新文章

  1. [机器学习] 虚拟机VMware中使用Ubuntu的联网问题
  2. Centos6---Fail2ban
  3. stm32中断无电平触发的解决办法
  4. JavaScript 全局对象
  5. EmguCV+Win7+Visual C# 2012 配置
  6. spring mvc各种常见类型参数绑定方式以及json字符串绑定对象
  7. 常用ADB命令
  8. 大数据性能调优之HBase的RowKey设计
  9. NET CORE 应用程序启动
  10. BZOJ 2969: 矩形粉刷(期望)
  11. php 将图片转成base64
  12. 使用netstat命名排查网络问题的参考指引
  13. 8个Python小Tips
  14. python垃圾回收机制:引用计数 VS js垃圾回收机制:标记清除
  15. 码云git 使用配置
  16. h5内容超出可以滑动展示的处理,iscroll的使用
  17. IIS Web服务器日志、日志服务器分析
  18. sell 项目 订单详情表 设计 及 创建
  19. nodejs基础 -- 常用工具util
  20. 关于第一场HBCTF的Web题小分享,当作自身的笔记

热门文章

  1. poj1417 带权并查集 + 背包 + 记录路径
  2. PHP获取MySql新增记录ID值的方法
  3. TCP连接——爱的传声筒
  4. matplotlib 和 pandas 两个包的安装
  5. bzoj 2938 AC自动机
  6. BZOJ 1116: [POI2008]CLO
  7. Leetcode 86. Unique Binary Search Trees
  8. linux中授予普通用户root权限
  9. 策略设计模式与c语言中的函数指针
  10. 组合数取模Lucas定理及快速幂取模