loyalxuan 发表于 2018-1-14 19:51:37

git add

  git add -A和 git add .   git add -u在功能上看似很相近,但还是存在一点差别
  git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
  git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
  git add -A :是上面两个功能的合集(git add --all的缩写)
  下面是具体操作例子,方便更好的理解(Git version 1.x):
  

git init  

echo Change me > change-me  

echo Delete me > delete-me  
git add change
-me delete-me  
git commit
-m initial  

  

echo OK >> change-me  

rm delete-me  

echo Add me > add-me  

  
git status
  
# Changed but not updated:
  
#   modified:   change
-me  
#   deleted:    delete
-me  
# Untracked files:
  
#   add
-me  

  
git add .
  
git status
  

  
# Changes to be committed:
  
#   new
file:   add-me  
#   modified:   change
-me  
# Changed but not updated:
  
#   deleted:    delete
-me  

  
git reset
  

  
git add
-u  
git status
  

  
# Changes to be committed:
  
#   modified:   change
-me  
#   deleted:    delete
-me  
# Untracked files:
  
#   add
-me  

  
git reset
  

  
git add
-A  
git status
  

  
# Changes to be committed:
  
#   new
file:   add-me  
#   modified:   change
-me  
#   deleted:    delete
-me  

  总结:
  ·git add -A提交所有变化
  ·git add -u提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
  ·git add .提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
  git版本不同会有所区别:
  Git Version 1.x:
http://i.stack.imgur.com/YfLUZ.jpg
  Git Version 2.x:
http://i.stack.imgur.com/KwOLu.jpg
  (如有错误还望指出,谢谢!)
页: [1]
查看完整版本: git add