git add …
git add -A
: stages all changes(所有新加的/删除的/修改的文件都会加入git track list,慎用,以免错误的添加新的文件——例如build产生的垃圾文件)
git add .
: stages new files and modifications, without deletions(确定是增量修改用这个)
git add -u
: 即 --update, stages modifications and deletions, without new files(只修改已经被git track的文件–理解为更新git track的文件;可以避免本地build产生的垃圾文件被误添加到git中。)
git stash
git stash的作用范围是整个工作目录,不是某个分支。因此,stash的修改可跨分支使用。
-
暂存已track文件的修改( untrack 的文件在stash后依然可见——即依然在工作空间中,不会被保存到stash镜像中,因此对 untrack 文件的修改不能通过 stash pop 恢复——因为该命令不会暂存未track的文件)
git stash git stash save "add comment"
-
暂存所有修改——相当于 git add . 和 git stash(包括新添加的文件,即恢复到上一次commit的状态,新添加的文件在stash后不可见——已保存到stash的镜像中,只能通过stash pop 恢复,但是不能添加描述信息message)
git stash -a 或者 --all
-
暂存所有修改(同 -a, 但是可以添加message信息,方便区分各个stash镜像,最好使用这个命令)
git stash save -a "some comment" 或者 --all
-
恢复最新的stash镜像(不会删去在stash后新添加的文件)
git stash pop # pop后的修改会在stash list中被丢弃,如想保留使用: git stash apply——见 git stash list命令
-
查看所有stash的镜像
git stash list # git stash show
-
查看内容:
git stash show -p # latest
git stash show -p stash@{1} # stash number
-
删除最新添加的stash的镜像
git stash drop
-
清除所有stash的镜像
git stash clean