git review (二)
git stash进度恢复
git stash
执行之后,在暂存区跟踪过后的文件无论在暂存区还是工作区的都会被重置掉,而没有add的文件都还存在在工作区。(据说是用了git reset --hard HEAD
,但是没有跟踪在暂存区的文件没被删除啊!!)
git stash pop
或者apply
之后,工作区现在没有被跟踪的文件不会丢掉,好像只增加了一些文件,其它的没动。
git reset –hard HEAD 执行了下,看来untracked file都不会管啊= =、
git stash命令
git stash list
git stash pop
git stash save "message..."
git stash apply [<stash>]
git stash drop [<stash>]
git stash clear
清除所有stash
git clean 命令
git clean -nd
查看哪些文件和目录会被删除
git clean -fd
强制删除多余的目录和文件
关于git stash 做了什么
通过git diff commitID1 commitID2
命令进行比较发现
多了三个提交,分别是WIP工作区的提交,index暂存区的提交,他们俩的父提交都是原来的HEAD的commit(这里叫做原基线)
原基线和暂存区差别就是git add之后跟踪的文件
原暂存区和原工作区没有差别。。这个跟书上不一样,我亲自试过,可能版本不同现在的改进了
原工作区和原基线的差别就是git add之后跟踪的文件
删除文件
git ls-files
显示版本库中的文件
git ls-files –with-tree = HEAD^
删除暂存区的文件命令
git rm
filename
然后 git commit
git add -u
命令表示将本地所有改动(修改和删除)的文件都标记到暂存区。
git add -A
会将所有改动及增加的文件添加到暂存区。
恢复某个文件(举例):
git chechout HEAD~1 -- filename
改名(举例):
git mv a b
git tag 里程碑
git tag -m 'message' tag_name
git log --oneline --decorate
此处decorate可以在提交id旁边显示提交关联的引用(里程碑或者分支)。
git describe
可以查看现在的tag后的编号,可以作为版本号。
文件忽略
在想要忽略文件的目录下添加 .gitignore 文件,里面内容是忽略的文件(且只对未跟踪文件有效)
本地独享式忽略文件 .git/info/exclude来设置。
忽略语法见git权威指南**Page**129
文件归档
基于最新提交建立归档文件latest.zip
git archive -c latest.zip HEAD
只将目录src和doc建立到归档partial.zip中
git archive -c partial.tar HEAD src doc
基于里程碑v 1.0建立归档,后面会介绍