git add . git add -A 和 git add -u的区别

  • git add . 操作的对象是当前目录下的所有变更,. 表示当前目录。
  • git add -A 操作的对象是整个工作区的所有变更,无论当前位于那个目录下。
  • git add -u 操作的对象是正个工作区已经跟踪的变更,无论当前位于那个目录下。

当前的文件

sfw@pro4 ~/a (dev) $ tree          
.    
├── dir1    
│   ├── delete    
│   ├── modify    
│   └── rename    
└── dir2    
    ├── delete    
    ├── modify    
    └── rename    

添加add文件,删除delete文件,重命名rename文件后

sfw@pro4 ~/a (dev) $ tree    
.    
├── dir1    
│   ├── add    
│   ├── modify    
│   └── rename_new    
└── dir2    
    ├── add    
    ├── modify    
    └── rename_new    
sfw@pro4 ~/a (dev) $ git status -s      
 D dir1/delete      
 M dir1/modify      
 D dir1/rename      
 D dir2/delete      
 M dir2/modify      
 D dir2/rename      
?? dir1/add      
?? dir1/rename_new      
?? dir2/add      
?? dir2/rename_new      

git add . 和 git add …/dir2

sfw@pro4 ~/a/dir1 (dev) $ git status -s      
 D delete      
 M modify      
 D rename      
 D ../dir2/delete      
 M ../dir2/modify      
 D ../dir2/rename      
?? add      
?? rename_new      
?? ../dir2/add      
?? ../dir2/rename_new      
sfw@pro4 ~/a/dir1 (dev) $ git add .      
sfw@pro4 ~/a/dir1 (dev) $ git status -s      
A  add      
D  delete      
M  modify      
R  rename -> rename_new      
 D ../dir2/delete      
 M ../dir2/modify      
 D ../dir2/rename      
?? ../dir2/add      
?? ../dir2/rename_new      


sfw@pro4 ~/a/dir1 (dev) $ cd ../../b/dir1      
sfw@pro4 ~/b/dir1 (dev) $ git status -s      
 D delete      
 M modify      
 D rename      
 D ../dir2/delete      
 M ../dir2/modify      
 D ../dir2/rename      
?? add      
?? rename_new      
?? ../dir2/add      
?? ../dir2/rename_new      
sfw@pro4 ~/b/dir1 (dev) $ git add ../dir2      
sfw@pro4 ~/b/dir1 (dev) $ git status -s      
 D delete      
 M modify      
 D rename      
A  ../dir2/add      
D  ../dir2/delete      
M  ../dir2/modify      
R  ../dir2/rename -> ../dir2/rename_new      
?? add      
?? rename_new      

git add -A

sfw@pro4 ~/c/dir1 (dev) $ git status -s      
 D delete      
 M modify      
 D rename      
 D ../dir2/delete      
 M ../dir2/modify      
 D ../dir2/rename      
?? add      
?? rename_new      
?? ../dir2/add      
?? ../dir2/rename_new      
sfw@pro4 ~/c/dir1 (dev) $ git add -A      
sfw@pro4 ~/c/dir1 (dev) $ git status -s      
A  add      
D  delete      
M  modify      
R  ../dir2/rename -> rename_new      
A  ../dir2/add      
D  ../dir2/delete      
M  ../dir2/modify      
R  rename -> ../dir2/rename_new      

git add -u

sfw@pro4 ~/d/dir1 (dev) $ git status -s      
 D delete      
 M modify      
 D rename      
 D ../dir2/delete      
 M ../dir2/modify      
 D ../dir2/rename      
?? add      
?? rename_new      
?? ../dir2/add      
?? ../dir2/rename_new      
sfw@pro4 ~/d/dir1 (dev) $ git add -u      
sfw@pro4 ~/d/dir1 (dev) $ git status -s      
D  delete      
M  modify      
D  rename      
D  ../dir2/delete      
M  ../dir2/modify      
D  ../dir2/rename      
?? add      
?? rename_new      
?? ../dir2/add      
?? ../dir2/rename_new      

参考

git-add - Add file contents to the index

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值