git相關(guān)命令總結(jié)

對于開發(fā)人員來說,掌握git命令是必不可少的,現(xiàn)在將常用的命令做一總結(jié)。

1、最常用的4條命令

Git各種命令組合上千種,是一個非常強大的工具。不過,在日常開發(fā)過程中,掌握以下四句,也就夠了。

$ git status # 查看工作區(qū)和緩沖區(qū)狀態(tài)(也就是查看你在開發(fā)中 修改、增加了那些文件)
$ git add --all # 將工作區(qū)修改暫存到緩沖區(qū)( 簡寫是 git add .)
$ git commit -m"<comment>"  # 提交到倉庫 (comment是你在提交代碼時的注釋)
$ git push origin master # 推送到遠程分支(要是推到你開發(fā)的分支  直接git push即可)

2、配置屬于你的Git

  • 看看你當前Git的配置
$ git config --list
  • 需要配置你Git的名字
$ git config --global user.name "<name>"

--global為可選參數(shù),該參數(shù)表示配置全局信息

  • 希望別人看到你的commit可以聯(lián)系到你
$ git config --global user.email "<email address>"
  • 有些命令很長,能不能簡化一下
$ git config --global alias.logg "log --graph --decorate --abbrev-commit --all"

之后就可以開心地使用 git logg了

3、關(guān)聯(lián)遠程倉庫

  • 如果還沒有Git倉庫,你需要
$ git init

如果你想關(guān)聯(lián)遠程倉庫

$ git remote add <name> <git-repo-url>
# 例如 git remote add origin https://github.com/xxxxxx

如果你想關(guān)聯(lián)多個遠程倉庫

$ git remote add <name> <another-git-repo-url>
# 例如 git remote add coding https://coding.net/xxxxxx

是遠程倉庫的名稱,通常為 origin

如果你忘了都關(guān)聯(lián)了哪些倉庫或者地址

$  git remote -v
# origin https://github.com/gzdaijie/koa-react-server-render-blog.git (fetch)
# origin https://github.com/gzdaijie/koa-react-server-render-blog.git (push)

如果有遠程倉庫,需要clone到本地

$ git clone <git-repo-url>

關(guān)聯(lián)的遠程倉庫將被命名為origin,這是默認的。

如果你想把別人倉庫的地址改為自己的

$ git remote set-url origin <your-git-url>

4、切換分支

新建倉庫后,默認生成了master分支
如果你想新建分支并切換

$ git checkout -b <new-branch-name>
# 例如 git checkout -b dev
# 如果僅新建,不切換,則去掉參數(shù) -b

看看當前有哪些分支

$ git branch
# *dev
#   master

標*號的代表當前所在的分支
看看當前本地&遠程有哪些分支

$ git branch -a
# * dev
#   master
#   remotes/origin/master

切換到現(xiàn)有的分支

$ git checkout master

你想把dev分支合并到master分支

$ git merge <branch-name>
# 例如 git merge dev

你想把本地master分支推送到遠程去

$ git push origin master

你可以使用git push -u origin master將本地分支與遠程分支關(guān)聯(lián),之后僅需要使用git push即可。
遠程分支被別人更新了,你需要更新代碼

$ git pull origin <branch-name>

之前如果push時使用過-u,那么就可以省略為git pull
本地有修改,能不能先git pull

$ git stash # 工作區(qū)修改暫存
$ git pull  # 更新分支
$ git stash pop # 暫存修改恢復到工作區(qū)

5、撤銷操作

恢復暫存區(qū)文件到工作區(qū)

$ git checkout <file-name>

恢復暫存區(qū)的所有文件到工作區(qū)

$ git checkout .

重置暫存區(qū)的某文件,與上一次commit保持一致,但工作區(qū)不變

$ git reset <file-name>

重置暫存區(qū)與工作區(qū),與上一次commit保持一致

$ git reset --hard <file-name>

如果是回退版本(commit),那么file,變成commit的hash碼就好了。
去掉某個commit

$ git revert <commit-hash>

實質(zhì)是新建了一個與原來完全相反的commit,抵消了原來commit的效果

6、版本回退與前進

查看歷史版本

$ git log

你可能覺得這樣的log不好看,試試這個

$ git log --graph --decorate --abbrev-commit --all

檢出到任意版本

$ git checkout a5d88ea

hash碼很長,通常6-7位就夠了
遠程倉庫的版本很新,但是你還是想用老版本覆蓋

$ git push origin master --force
# 或者 git push -f origin master

覺得commit太多了?多個commit合并為1個

$ git rebase -i HEAD~4

這個命令,將最近4個commit合并為1個,HEAD代表當前版本。將進入VIM界面,你可以修改提交信息。推送到遠程分支的commit,不建議這樣做,多人合作時,通常不建議修改歷史。
想回退到某一個版本

$ git reset --hard <hash>
# 例如 git reset --hard a3hd73r

--hard代表丟棄工作區(qū)的修改,讓工作區(qū)與版本代碼一模一樣,與之對應,--soft參數(shù)代表保留工作區(qū)的修改。
想回退到上一個版本,有沒有簡便方法?

$ git reset --hard HEAD^

回退到上上個版本呢?

$ git reset --hard HEAD^^

HEAD^^可以換作具體版本hash值。
回退錯了,能不能前進呀

$ git reflog

這個命令保留了最近執(zhí)行的操作及所處的版本,每條命令前的hash值,則是對應版本的hash值。使用上述的git checkout 或者 git reset命令 則可以檢出或回退到對應版本。
剛才commit信息寫錯了,修改

$ git commit --amend

看看當前狀態(tài)吧

$ git status

這些命令如果你已經(jīng)都能熟練用運了,那么git你已經(jīng)無敵了。

碼字不易,點個贊唄。

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

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

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,853評論 1 26
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,837評論 9 163
  • 悠然自得繪畫步驟 首先描好墨線(墨線要淡、細) 鋪調(diào)子(荷葉、花青十焦茶) 分染 (錦鯉牡丹紅十焦茶) (荷花牡丹...
    曼殊兆蘭閱讀 665評論 2 5
  • 不要被保濕霜這三個字嚇到(o),這絕對是我這次過敏的大功臣,用上它不到三天就完全好了,目瞪口呆,滿血復活。??...
    杜陵一夢閱讀 344評論 0 0
  • 裝逼是人類進步的動力,對有些人而言,這種進步是一種說不出的痛! 如今信息瘋狂傳播,能潛心研究某一個領(lǐng)域的人越來越少...
    奇葩蕭蕭閱讀 4,430評論 4 6

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