Git命令解析(續(xù))
1.查看標(biāo)簽
git tag
2.展示當(dāng)前分支的最近的tag
git describe --tags --abbrev=0
3.查看標(biāo)簽詳細(xì)信息
git tag -ln
4.本地創(chuàng)建標(biāo)簽
git tag <version-number>
5.默認(rèn)tag是打在最近的一次commit上脖旱,如果需要指定commit打tag:
$ git tag -a -m "v1.0發(fā)布(描述)"
6.推送標(biāo)簽到遠(yuǎn)程倉(cāng)庫(kù)——首先要保證本地創(chuàng)建好了標(biāo)簽才可以推送標(biāo)簽到遠(yuǎn)程倉(cāng)庫(kù):
git push origin <local-version-number>
一次性推送所有標(biāo)簽,同步到遠(yuǎn)程倉(cāng)庫(kù):
git push origin --tags
7.刪除本地標(biāo)簽
git tag -d <tag-name>
8.刪除遠(yuǎn)程標(biāo)簽——?jiǎng)h除遠(yuǎn)程標(biāo)簽需要先刪除本地標(biāo)簽,再執(zhí)行下面的命令:
git push origin :refs/tags/<tag-name>
9.切回到某個(gè)標(biāo)簽——一般上線之前都會(huì)打tag况木,就是為了防止上線后出現(xiàn)問題楼雹,方便快速回退到上一版本。下面的命令是回到某一標(biāo)簽下的狀態(tài):
git checkout -b branch_name tag_name
10.放棄工作區(qū)的修改
git checkout <file-name>
放棄所有修改:
git checkout .
11.恢復(fù)刪除的文件
git rev-list -n 1 HEAD -- #得到deleting_commit
git checkout ^ -- #回到刪除文件deleting_commit之前的狀態(tài)
12.以新增一個(gè)commit的方式還原某一個(gè)commit的修改
git revert <commit-id>
13.回到某個(gè)commit的狀態(tài)选浑,并刪除后面的commit
和revert的區(qū)別:reset命令會(huì)抹去某個(gè)commit id之后的所有commit
git reset #默認(rèn)就是-mixed參數(shù)办素。
git reset –mixed HEAD^#回退至上個(gè)版本,它將重置HEAD到另外一個(gè)commit,并且重置暫存區(qū)以便和HEAD相匹配欣尼,但是也到此為止爆雹。工作區(qū)不會(huì)被更改。
git reset –soft HEAD~3#回退至三個(gè)版本之前,只回退了commit的信息钙态,暫存區(qū)和工作區(qū)與回退之前保持一致慧起。如果還要提交,直接commit即可
git reset –hard #徹底回退到指定commit-id的狀態(tài)册倒,暫存區(qū)和工作區(qū)也會(huì)變?yōu)橹付╟ommit-id版本的內(nèi)容
14.修改上一個(gè)commit的描述
git commit --amend
15.查看commit歷史
git log
16.查看某段代碼是誰寫的
git blame <file-name>
17.顯示本地更新過HEAD的git命令記錄
每次更新了HEAD的git命令比如commint完慧、amend、cherry-pick剩失、reset屈尼、revert等都會(huì)被記錄下來(不限分支),就像shell的history一樣拴孤。這樣你可以reset到任何一次更新了HEAD的操作之后脾歧,而不僅僅是回到當(dāng)前分支下的某個(gè)commit之后的狀態(tài)。
git reflog
18. 修改作者名
git commit --amend --author='Author Name <email@address.com>'