码迷,mamicode.com
首页 > 其他好文 > 详细

git checkout .和git checkout -f的区别;git add . git add -u git add -A的区别

时间:2020-05-30 21:36:12      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:let   手动   存在   hang   没有   包括   track   commit   date   

// 放弃所有的文件修改
git checkout .
此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

//丢弃本地修改,还可以删除没有跟踪的
git checkout -f
技术图片
技术图片

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 checkout .和git checkout -f的区别;git add . git add -u git add -A的区别

标签:let   手动   存在   hang   没有   包括   track   commit   date   

原文地址:https://www.cnblogs.com/djwhome/p/12995021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!