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建立歸檔,後面會介紹