如何快速掌握git命令

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

1. 基本概念

1.1 4個區

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

1.2 5種狀態

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

2. 常見操作

2.1 本地初始化

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

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

2.2 分支創建和提交

通常,代碼都在分支上進行開發,分支開發的命令幾乎是 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 分支上正在開發下一個版本,此時我們就要新開分支,來進行代碼修復,併合併到線上分支。

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 的使用過程中,部分命令的使用非常頻繁,例如

git status
git add .
git commit -m msg

每次的重複輸入操作很繁瑣,爲此 git 提供別名 alias 的設置,使用 alias 別名設置可以簡化我們的操作

3.1 alias

git config --global alias.ci commit

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

git ci -m msg

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

3.2 自定義指令

我們可以通過配置相應文件,來簡化我們的命令,打開 git 安裝目錄下的 etc/bash.bashrc,在最後一行添加

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 提交信息的規範等,以後將慢慢介紹。

  • 本文首發於公衆號,更多內容歡迎關注我的公衆號: 阿誇漫談
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章