Git 命令大全

初識(shí) git

Git 是一個(gè)免費(fèi)的開(kāi)放源碼的 分布式版本控制系統(tǒng),用于處理從小到大的項(xiàng)目,速度和效率的一切。
Git 易于學(xué)習(xí),具有 閃電般快速的性能,占地面積小。它超越了像 Subversion,CVS,Perforce 和 ClearCase 這樣的 SCM 工具,具有易操作的本地分支,便利的分段區(qū)域多個(gè)工作流等功能

git 命令

  • git:查看 git 是否安裝成功

  • git init:創(chuàng)建倉(cāng)庫(kù)

  • git status:查看當(dāng)前狀態(tài)

  • git add:添加到暫存區(qū),等待被提交,還沒(méi)真正在倉(cāng)庫(kù)

  • git rm --cached:移除添加的緩存,與 git add 相對(duì)應(yīng)

  • git commit -m "描述信息":提交到倉(cāng)庫(kù),并添加描述信息

  • git log:查看所有產(chǎn)生的 commit 記錄

  • git branch:查看當(dāng)前分支情況

  • git branch -r:查看遠(yuǎn)程分支

  • git branch X:創(chuàng)建 X 分支

  • git checkout X:切換到 X 分支

  • git checkout X.XX:撤銷(xiāo)到原來(lái)的 X.XX 文件(只對(duì)沒(méi)有執(zhí)行 git add 文件有效)

  • git checkout -b X:創(chuàng)建 X 分支,并且自動(dòng)切換到 X 分支

  • git merge X:將 X 分支合并到主分支,前提是先切換到主分支(暴力合并但條理清晰)

  • git rebase X:將 X 分支合并到主分支,前提是先切換到主分支(進(jìn)行比較排序合并但條理不清晰)

  • git branch -d X:刪除 X 分支,前提是已經(jīng)合并到主分支,否則不能刪除

  • git branch -D X:強(qiáng)行刪除 X 分支,無(wú)論什么情況

  • git push origin :X:刪除遠(yuǎn)程 X 分支

  • git checkout X origin/X:將遠(yuǎn)程 X 分支遷到本地并以 X 命名分支(遠(yuǎn)程有 X 分支而本地沒(méi)有的情況下)

  • git checkout -b X origin/X:將遠(yuǎn)程 X 分支遷到本地并以 X 命名分支并切換到該分支(遠(yuǎn)程有 X 分支而本地沒(méi)有的情況下)

  • git tag:查看歷史 tag 記錄

  • git tag v1.0:創(chuàng)建 v1.0 標(biāo)簽

  • git checkout v1.0:切換到 v1.0 版本狀態(tài)

  • git diff:比較差異(紅色顯示刪除的內(nèi)容,綠色顯示增加的內(nèi)容)

  • git diff <?id2>:比較兩次提交之間的差異

  • git diff <branch1>..<branch2>:比較兩分支之間的差異

  • git diff --staged:比較暫存區(qū)和版本庫(kù)之間的差異

  • git stash:把當(dāng)前分支所有沒(méi) commit 得代碼暫存起來(lái)

  • git stash list:查看暫存區(qū)記錄

  • git stash apply:暫存申請(qǐng)還原,繼續(xù)上次暫存處

  • git stash drop:刪除最近一條暫存區(qū)記錄

  • git stash pop:還原上次暫存處并刪除最近一條暫存區(qū)記錄(相當(dāng)于執(zhí)行 git stash apply + git stash drop)

  • git stash clear:清空所有暫存區(qū)記錄

  • ssh:查看是否安裝 SSH(一種網(wǎng)絡(luò)協(xié)議,用于計(jì)算機(jī)之間加密登陸)

  • ssh-keygen -t rsa:指定 rsa 算法生成密鑰,接著連續(xù)三個(gè)回車(chē)生成兩個(gè)文件 id_rsa 和 id_rsa.pub,id_rsa 是密鑰,id_rsa.pub 是公鑰,兩個(gè)文件默認(rèn)生成目錄:Mac/Linux 系統(tǒng)在:~/.ssh 下,Windows 系統(tǒng)在:/c/Documents and Settings/username/.ssh 下,為隱藏文件

  • ssh -T git@github.com:測(cè)試 SSH key 是否添加成功

  • git clone git@github.com:github用戶(hù)名/倉(cāng)庫(kù)名稱(chēng):將遠(yuǎn)程 github 倉(cāng)庫(kù)克隆到本地

  • git push origin master:將本地代碼推到遠(yuǎn)程 master 分支,保持代碼同步(push 之前先 pull,避免沖突)

  • git pull origin master:把遠(yuǎn)程 master 分支代碼拉到本地,保持代碼同步(push 之前先 pull,避免沖突)

  • git remote -v:查看當(dāng)前項(xiàng)目有哪些遠(yuǎn)程倉(cāng)庫(kù)

  • git config --global user.name "用戶(hù)名":設(shè)置全局用戶(hù)名

  • git config --global user.email "郵箱":設(shè)置全局郵箱

  • git config --global user.name :查詢(xún)?nèi)钟脩?hù)名

  • git config --global user.email:查詢(xún)?nèi)粥]箱

  • git config user.name "用戶(hù)名":設(shè)置當(dāng)前用戶(hù)名

  • git config user.email "郵箱":設(shè)置當(dāng)前郵箱

  • git config user.name :查詢(xún)當(dāng)前用戶(hù)名

  • git config user.email:查詢(xún)當(dāng)前郵箱

  • git config --global alias.co commit:給 commit 指令設(shè)置全局別名為co(其他指令以此類(lèi)推)

  • git config --global alias.psm 'push origin master':給 push origin master 組合指令設(shè)置全局別名為 psm(其他組合指令以此類(lèi)推)

git 設(shè)置

  • git config --global core.editor "vim":設(shè)置 editor 使用 vim

  • git config --global color.ui true:開(kāi)啟 git 著色

  • git config --global core.quotepath false:設(shè)置顯示中文文件名

團(tuán)隊(duì)合作利器 Git Flow

Git Flow 是一種比較成熟的分支管理流程,比較適合三五個(gè)人團(tuán)隊(duì)合作開(kāi)發(fā)項(xiàng)目,是一種多人協(xié)作下的分支管理規(guī)范。點(diǎn)此查看 Git Flow 安裝使用

工作流程
通過(guò)一張圖描述整個(gè)工作流程:

Git Flow 分支工作流程圖

各階段名詞解釋

  • master:永遠(yuǎn)處在即將發(fā)布狀態(tài)。
  • develop:最新開(kāi)發(fā)狀態(tài)。
  • feature:開(kāi)發(fā)新功能的分支,基于 develop 分支,完成后 merge 回 develop。
  • release:準(zhǔn)備要發(fā)布版本的分支,用來(lái)修復(fù) bug,基于 develop,完成后 * * merge 回 develop 和 master。
  • hotfix:修復(fù) master 上的問(wèn)題,等不及 release 版本就必須馬上上線(xiàn),基于 master,完成后 merge 回 master 和 develop。

相關(guān)規(guī)范

  • git branch feature/A:假設(shè)已經(jīng)有 master 和 develop 兩個(gè)分支,需要添加新功能 A,第一步要做的就是基于 develop 新建一個(gè)分支 A,規(guī)定所有開(kāi)發(fā)的功能都以 feature 為前綴。
  • git branch hotfix/B:出現(xiàn)緊急 bug 修復(fù)的情況下,立刻切換到 master 分支,然后在此基礎(chǔ)上新建分支 B,代表新建了一個(gè)緊急修復(fù)分支,修復(fù)完成后合并到 develop 和 master,然后發(fā)布。
  • git branch release/1.0:feature 新功能開(kāi)發(fā)完了,合并回 develop 分支,感覺(jué)可以發(fā)布到正式環(huán)境了,新建一個(gè) release 分支。期間發(fā)現(xiàn) bug 直接修改,直到達(dá)到發(fā)布標(biāo)準(zhǔn),最后把該分支合并到 develop 和 master 然后進(jìn)行發(fā)布。

專(zhuān)業(yè)名詞解釋

  • status:狀態(tài)
  • cached:貯藏
  • stash:暫存
  • commit:提交
  • checkout:切換
  • branch:分支
  • diff:差異
  • clone:克隆
  • push:推
  • pull:拉
  • origin:原點(diǎn)
  • remote:遠(yuǎn)程
  • global:全局
  • conflicts:沖突

吐血推薦

learn-github-from-zero-pdf 是 Android 大神 stormzhang 的良心之作,本篇博客就是閱讀此教程提煉的。希望你看完他的教程能有自己的收獲。
原創(chuàng)不易,請(qǐng)尊重他人的勞動(dòng)成果,歡迎轉(zhuǎn)載,但請(qǐng)注明出處。

morninggeng
05/04/2017

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

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

  • Add & Commit git init 初始化一個(gè) Git 倉(cāng)庫(kù)(repository),即把當(dāng)前所在目錄變成...
    冬絮閱讀 5,132評(píng)論 0 9
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,870評(píng)論 1 26
  • Git命令 # git知識(shí)點(diǎn) ##用命令行創(chuàng)建一個(gè)新的存儲(chǔ)庫(kù) echo "# Documents" >> READ...
    呼呼哥閱讀 452評(píng)論 0 0
  • git init # 初始化本地git倉(cāng)庫(kù)(創(chuàng)建...
    Babyzpj閱讀 277評(píng)論 0 0
  • 有話(huà)說(shuō),未曾聽(tīng)完先回答的,便是他的愚昧。就是心急發(fā)言,搶話(huà)說(shuō),這個(gè)毛病在我身上存在很久了,以前嚴(yán)重,現(xiàn)在...
    先謙虛后受益閱讀 789評(píng)論 1 4

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