Git 是程序員工做必備的技能之一,本文將從基本概念、常見操做、快捷技巧三個方面進行介紹,總結工做中經常使用的 Git 命令,使你可以快速脫離 Git 可視化工具,掌握 Git。
工做區 暫存區 本地倉庫 遠程倉庫
未修改:對應區爲工做區 已修改:對應區爲工做區 已暫存:對應區爲暫存區 已提交:對應區爲本地倉庫 已推送:對應區爲遠程倉庫
平時咱們修改和未修改的代碼都屬於工做區,git add
即把已修改的代碼暫時存儲,代碼進入暫存區,git commit
即把暫存的代碼提交到本地倉庫,產生一條提交記錄,git push
即將本地倉庫推送到遠程倉庫,代碼實現遠程共享。
主要有兩種方法,一種是 clone 項目,另外一種是本地建立再鏈接到遠程項目。下面以 github 爲例:node
git clone git@github.com:userName/projectName.git
cd projectName // 進入項目文件夾 git init // 初始化 git remote add origin git@github.com:userName/projectName.git // 鏈接到遠程 github 項目
第二種方法要首先確保遠程倉庫已經建立。
一般,代碼都在分支上進行開發,分支開發的命令幾乎是 Git 中最經常使用的命令,下面羅列了分支開發中的經常使用命令並加以說明。git
git checkout -b project-dev // 建立 project-dev 分支 git branch // 查看分支 git status // 顯示工做區和暫存區的狀態 git add . // 將工做區的全部變化提交到暫存區 git commit -m 'message' // 將暫存區提交到本地倉庫 git checkout dev // 切換到 dev 分支 git merge project-dev // 將 project-dev 合併到 dev 分支 git pull // 拉取倉庫倉庫代碼 git push origin dev // 提交本地倉庫代碼 git branch -d zproject-dev // 刪除 project-dev 分支
切換分支時,記得將代碼提交到本地倉庫,避免未提交的代碼一同切換。
實際工做中,常常會出現提交錯誤的狀況,因此撤銷更改的操做要牢記於心。處於不一樣狀態下的撤銷更改是不一樣的:程序員
# 方法1:撤銷全部修改 git checkout . # 方法2:撤銷全部修改 git reset --hard
git add
錯誤# 撤銷指定的文件,保留更改 git reset <file> # 撤銷全部的文件,保留更改 git reset # 撤銷全部的文件,不保留更改 git reset --hard
git commit
錯誤文件# 撤銷 commit 操做,保留文件變化 git reset HEAD~1 # 撤銷 commit 操做,刪除變化 git reset --hard HEAD~1
git push
錯誤文件# 退回到指定版本 git reset --hard <commit_id> # 強制覆蓋遠程分支 git push -f
線上代碼出現問題,須要緊急修復,而 dev 分支上正在開發下一個版本,此時咱們就要新開分支,來進行代碼修復,併合併到線上分支。github
git branch -a // 查看全部分支 git checkout -b repair_dev origin/repair_dev // 建立遠程分支 repair_dev,並切換到 repair_dev分支 ... // 在分支上進行修改提交 git checkout dev // 切換回 dev 分支 git merge repair_dev // 合併分支 repair_dev git branch -D repair_dev // 刪除分支
從經常使用操做中能夠看出,在 git 的使用過程當中,部分命令的使用很是頻繁,例如npm
git status git add . git commit -m msg
每次的重複輸入操做很繁瑣,爲此 git 提供別名 alias 的設置,使用 alias 別名設置能夠簡化咱們的操做bash
git config --global alias.ci commit
設置以後,之後提交到本地倉庫就簡寫爲工具
git ci -m msg
看起來是否是簡短了不少?但這種方法每次只能簡化一個命令,主要是用來簡化參數。code
咱們能夠經過配置相應文件,來簡化咱們的命令,打開 git 安裝目錄下的 etc/bash.bashrc,在最後一行添加ci
source /etc/git-completion.bash
對 git-completion.bash 文件進行引用,保存以後再打開 /etc/git-completion.bash ,添加屬於本身的自定義指令,例如我配的自定義指令開發
alias ci='git add . && git commit' alias project='cd d:/first/second/third/project'
配置好以後重啓 git bash ,此時輸入 project
就能夠直接進入項目路徑,提交代碼則爲
project ci -m msg
是否是更簡短了?咱們能夠經過在 git-completion.bash 定義各類指令,定製出一套屬於本身的指令。
除此以外,咱們還能夠將自定義指令和 VS Code 的快捷指令結合,例如 VS Code 能夠在 git bash 經過 code
命令打開,咱們就能夠設置自定義指令爲
alias project='cd d:/first/second/third/project' && code ./ alias projectpull='cd d:/first/second/third/project' && code ./ && git pull
此時咱們輸入 project
便可以進入相應項目目錄,並在同時在 VS Code 打開了該項目。輸入 projectpull
即在前面的基礎上對代碼進行拉取
除告終合VS Code,還能夠和一些全局 npm 包或者 node 腳本一塊兒配合使用。
本文主要從基本概念、常見操做、快捷技巧三個方面對 Git 進行講解,掌握後基本知足工做須要。但 Git 的使用遠不僅有這三方面,例如使用 Git 鉤子在代碼提交前進行檢查、項目中 Git 提交信息的規範等,之後將慢慢介紹。