git 奇技淫巧

Tag

添加 Tag

例如:1.0.0

git tag -a 1.0.0 -m "1.0.0 版本的備注信息."

推送所有 tag,同步到遠(yuǎn)程倉庫:

git push origin --tags

刪除本地 Tag

例如:1.0.0

git tag -d 1.0.0

刪除遠(yuǎn)程標(biāo)簽需要先刪除本地標(biāo)簽,再執(zhí)行下面的命令:

git push origin :refs/tags/1.0.0
git push origin --delete tag 1.0.0

展示當(dāng)前分支的最近的tag

git describe --tags --abbrev=0

默認(rèn) tag 是打在最近的一次 commit 上,如果需要指定 commit 打 tag:

git tag -a <version-number> -m "v1.0.0 發(fā)布(描述)" <commit-id>

分支

快速切換分支

git checkout -

刪除已經(jīng)合并到master的分支

git branch --merged master | grep -v '^\*\|  master' | xargs -n 1 git branch -d

列出遠(yuǎn)程服務(wù)器和本地的所有分支,以及分支上的最后提交

git branch -vv

列出本地和遠(yuǎn)程分支

-a參數(shù)相當(dāng)于:all

git branch -a

列出所有遠(yuǎn)程服務(wù)器上的分支

-r參數(shù)相當(dāng)于:remote

git branch -r

同步本地與遠(yuǎn)程分支

刪除遠(yuǎn)程不存在的本地分支

git fetch --p

更新遠(yuǎn)程跟蹤分支

git fetch origin

創(chuàng)建并切換到本地分支

git checkout -b <branch-name>

創(chuàng)建并切換到遠(yuǎn)程分支

git checkout -b <branch-name> origin/<branch-name>

刪除遠(yuǎn)程分支

git push origin --delete <remote-branchname>
git push origin :<remote-branchname>

重命名本地分支

git branch -m <new-branch-name>

Commit

合并本地的最后兩次 commit

git reset --soft HEAD^git commit --amend

修改上一次的 commit 信息

git commit --amend

展示簡化的 commit 歷史

git log --pretty=oneline --graph --decorate --all

以新增一個commit的方式還原某一個commit的修改

git revert <commit-id>

回到某個commit的狀態(tài),并刪除后面的commit

和 revert 的區(qū)別:reset 命令會抹去某個 commit id 之后的所有 commit

git reset <commit-id>  #默認(rèn)就是-mixed參數(shù)。
git reset –mixed HEAD^  #回退至上個版本,它將重置HEAD到另外一個commit,并且重置暫存區(qū)以便和HEAD相匹配,但是也到此為止。工作區(qū)不會被更改。
git reset –soft HEAD~3  #回退至三個版本之前,只回退了commit的信息,暫存區(qū)和工作區(qū)與回退之前保持一致。如果還要提交,直接commit即可   
git reset –hard <commit-id>  #徹底回退到指定commit-id的狀態(tài),暫存區(qū)和工作區(qū)也會變?yōu)橹付╟ommit-id版本的內(nèi)容

查看指定路徑文件代碼是誰寫的

git blame <file-name>

遠(yuǎn)程倉庫

刪除遠(yuǎn)程倉庫地址

git remote remove origin <remote-url>

修改遠(yuǎn)程倉庫的url

git remote set-url origin <URL>

增加遠(yuǎn)程倉庫

git remote add origin <remote-url>

列出所有遠(yuǎn)程倉庫

git remote

stash

暫存命令stash使用

git stash #將本地修改暫時存儲起來
git stash list #查看暫存的信息
git stash pop  #應(yīng)用最近一次暫存的內(nèi)容
git stash apply stash@{1} #應(yīng)用指定版本的暫存內(nèi)容
git stash clear  #清空暫存棧
git checkout <stash@{n}> -- <file-path> #從stash中拿出某個文件的修改

Git取消合并(merge)、暫存修改(stash)、回退到某個版本(reset)的使用方法

例如:取消某次合并

git merge --abort #如果Git版本 >= 1.7.4
git reset --merge #如果Git版本 >= 1.6.1

注意:
在合并之前要保證沒有未提交的文件,如果有未提交的文件但現(xiàn)在又不想提交,用stash命令暫存。

回退到某個版本并應(yīng)用指定的幾次提交

git reset --hard 1d7444 #回退到某個版本
git cherry-pick 626335 #將某次commit的更改應(yīng)用到當(dāng)前版本
git cherry-pick …
git push origin HEAD --force  #強(qiáng)制提交

注意:
如果是撤銷某次提交,可以用revert命令,git revert是生成一個新的提交來撤銷某次提交,此次提交之前的commit都會被保留; git reset是回到某次提交,提交及之前的commit都會被保留,但是此次之后的修改都會被退回到暫存區(qū)。

git強(qiáng)制push

git push -u origin master -f

把暫存區(qū)的指定file放到工作區(qū)中

不添加參數(shù),默認(rèn)是-mixed

git reset <file-name>

撤銷所有未提交的本地修改

git checkout .

Push 本地分支到指定遠(yuǎn)程分支

例如:Push 本地當(dāng)前分支到遠(yuǎn)程倉庫 origin 的 master 分支

git push -u origin master
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,209評論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 4,155評論 0 11
  • Git是目前最流行的版本管理系統(tǒng),也是最先進(jìn)的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,982評論 1 17
  • 05 我不喜歡那里的生活,特別不喜歡,總是請假,不想上班,在那干了四五個月,回家的時候就剩了兩千多塊錢,實(shí)在不想干...
    小小圣女果閱讀 234評論 0 2
  • 他們說愛上一個人是一瞬間的事情而忘掉一個人卻需要一輩子的時間。我想,這是真的。 初次愛上她時,...
    溫暖曾睡在皮膚上閱讀 299評論 0 2

友情鏈接更多精彩內(nèi)容