1、標(biāo)簽
發(fā)布一個版本時钻注,我們通常先在版本庫中打一個標(biāo)簽(tag),這樣配猫,就唯一確定了打標(biāo)簽時刻的版本队寇。將來無論什么時候,取某個標(biāo)簽的版本章姓,就是把那個打標(biāo)簽的時刻的歷史版本取出來。所以识埋,標(biāo)簽也是版本庫的一個快照凡伊。
Git的標(biāo)簽雖然是版本庫的快照,但其實它就是指向某個commit的指針(跟分支很像對不對窒舟?但是分支可以移動系忙,標(biāo)簽不能移動),所以惠豺,創(chuàng)建和刪除標(biāo)簽都是瞬間完成的。
- 列出所有tag
git tag
- 新建一個tag在當(dāng)前commit
git tag [tag]
- 新建一個tag在指定commit
git tag [tag] [commit]
- 刪除本地tag
git tag -d [tag]
- 刪除遠程tag
git push origin :refs/tags/[tagName]
- 查看tag信息
git show [tag]
- 提交指定tag
git push [remote] [tag]
- 提交所有tag
git push [remote] --tags
- 新建一個分支,指向某個tag
git checkout -b [branch] [tag]
2哀九、日志操作
git log
3掉弛、撤銷
- 恢復(fù)暫存區(qū)的指定文件到工作區(qū)
git checkout [file]
- 恢復(fù)某個commit的指定文件到暫存區(qū)和工作區(qū)
git checkout [commit] [file]
- 恢復(fù)暫存區(qū)的所有文件到工作區(qū)
git checkout .
- 重置暫存區(qū)的指定文件,與上一次commit保持一致热监,但工作區(qū)不變
git reset [file]
- 重置暫存區(qū)與工作區(qū)捺弦,與上一次commit保持一致
git reset --hard
- 重置當(dāng)前分支的指針為指定commit,同時重置暫存區(qū)孝扛,但工作區(qū)不變
git reset [commit]
- 重置當(dāng)前分支的HEAD為指定commit列吼,同時重置暫存區(qū)和工作區(qū),與指定commit一致
git reset --hard [commit]
- 重置當(dāng)前HEAD為指定commit苦始,但保持暫存區(qū)和工作區(qū)不變
git reset --keep [commit]
- 新建一個commit寞钥,用來撤銷指定commit,后者的所有變化都將被前者抵消陌选,并且應(yīng)用到當(dāng)前分支
git revert [commit]
- 暫時將未提交的變化移除理郑,稍后再移入
git stash git stash pop
4蹄溉、SSH密鑰
這部分內(nèi)容引自http://www.reibang.com/p/b238de250c06,感謝作者香浩。
為了使本地倉庫和遠端安全鏈接类缤,于是到了這一步。
- SH key提供了一種與 GitHub 通信的方式邻吭,通過這種方式餐弱,能夠在不輸入密碼的情況下,將GitHub作為自己的remote端服務(wù)器囱晴,進行版本控制膏蚓。分為如下三步。
- 查看 SSH 密鑰是否存在畸写,如果有則備份刪除驮瞧。
cd ~/.ssh
- 生存密鑰,過程中可直接按回車枯芬。
ssh-keygen -t rsa -C "icorvoh@qq.com"
- 最后得到兩個文件:id_rsa 和 id_rsa.pub 并獲取其中密鑰
cat ~/.ssh/id_rsa.pub
-
在代碼托管平臺(這里是 Github )中添加公鑰论笔。
5、添加遠程庫
6千所、遠程同步
- 下載遠程倉庫的所有變動
git fetch [remote]
- 顯示所有遠程倉庫
git remote -v
- 顯示某個遠程倉庫的信息
git remote show [remote]
- 增加一個新的遠程倉庫狂魔,并命名
git remote add [shortname] [url]
- 取回遠程倉庫的變化,并與本地分支合并
git pull [remote] [branch]
- 上傳本地指定分支到遠程倉庫
git push [remote] [branch]
由于遠程庫是空的淫痰,我們第一次推送master分支時最楷,加上了-u參數(shù),Git不但會把本地的dev分支內(nèi)容推送的遠程新的dev分支待错,還會把本地的dev分支和遠程的dev分支關(guān)聯(lián)起來籽孙,在以后的推送或者拉取時就可以簡化命令。 - 強行推送當(dāng)前分支到遠程倉庫火俄,即使有沖突
git push [remote] --force
- 推送所有分支到遠程倉庫
git push [remote] --all
確保SSH添加成功犯建,如下圖,否則對倉庫操作會出現(xiàn)fatal: Could not read from remote repository.
問題瓜客。
-
從遠程庫克隆
7胎挎、總結(jié)
操作一定要仔細啊。忆家。犹菇。。