如何快速掌握git命令

Git 是程序員工做必備的技能之一,本文將從基本概念、常見操做、快捷技巧三個方面進行介紹,總結工做中經常使用的 Git 命令,使你可以快速脫離 Git 可視化工具,掌握 Git。

1. 基本概念

1.1 4個區

工做區
暫存區
本地倉庫
遠程倉庫

1.2 5種狀態

未修改:對應區爲工做區
已修改:對應區爲工做區
已暫存:對應區爲暫存區
已提交:對應區爲本地倉庫
已推送:對應區爲遠程倉庫
平時咱們修改和未修改的代碼都屬於工做區, git add 即把已修改的代碼暫時存儲,代碼進入暫存區, git commit 即把暫存的代碼提交到本地倉庫,產生一條提交記錄, git push 即將本地倉庫推送到遠程倉庫,代碼實現遠程共享。

2. 常見操做

2.1 本地初始化

主要有兩種方法,一種是 clone 項目,另外一種是本地建立再鏈接到遠程項目。下面以 github 爲例:node

  • clone 項目
git clone git@github.com:userName/projectName.git
  • 本地建立再鏈接
cd projectName   // 進入項目文件夾
git init         // 初始化
git remote add origin git@github.com:userName/projectName.git  // 鏈接到遠程 github 項目
第二種方法要首先確保遠程倉庫已經建立。

2.2 分支建立和提交

一般,代碼都在分支上進行開發,分支開發的命令幾乎是 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 分支
切換分支時,記得將代碼提交到本地倉庫,避免未提交的代碼一同切換。

2.3 撤銷更改

實際工做中,常常會出現提交錯誤的狀況,因此撤銷更改的操做要牢記於心。處於不一樣狀態下的撤銷更改是不一樣的:程序員

  • 已修改,未暫存
# 方法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

2.4 指定版本修復

線上代碼出現問題,須要緊急修復,而 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                        // 刪除分支

3. 快捷技巧

從經常使用操做中能夠看出,在 git 的使用過程當中,部分命令的使用很是頻繁,例如npm

git status
git add .
git commit -m msg

每次的重複輸入操做很繁瑣,爲此 git 提供別名 alias 的設置,使用 alias 別名設置能夠簡化咱們的操做bash

3.1 alias

git config --global alias.ci commit

設置以後,之後提交到本地倉庫就簡寫爲工具

git ci -m msg

看起來是否是簡短了不少?但這種方法每次只能簡化一個命令,主要是用來簡化參數。code

3.2 自定義指令

咱們能夠經過配置相應文件,來簡化咱們的命令,打開 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 定義各類指令,定製出一套屬於本身的指令。

3.3 結合 VS Code

除此以外,咱們還能夠將自定義指令和 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 腳本一塊兒配合使用。

4. 總結

本文主要從基本概念、常見操做、快捷技巧三個方面對 Git 進行講解,掌握後基本知足工做須要。但 Git 的使用遠不僅有這三方面,例如使用 Git 鉤子在代碼提交前進行檢查、項目中 Git 提交信息的規範等,之後將慢慢介紹。

  • 本文首發於公衆號,更多內容歡迎關注個人公衆號: 阿誇漫談
相關文章
相關標籤/搜索