1. 程式人生 > 其它 >Git常用的命令

Git常用的命令

一、前言

git的操作可以通過命令的形式執行,日常使用就如下圖6個命令即可

實際上,如果想要熟練使用,超過60多個命令需要了解,下面則介紹下常見的的git命令

二、有哪些

大致分成了以下幾個類別

  • 配置
  • 初始化
  • 日常基本操作
  • 分支操作
  • 遠端同步
  • 撤銷
  • 儲存

配置

Git自帶一個git config的工具來幫助設定控制Git外觀和行為的配置變數,在我們安裝完git之後,第一件事就是設定你的使用者名稱和郵件地址

後續每一個提交都會使用這些資訊,它們會寫入到你的每一次提交中,不可更改

設定提交程式碼時的使用者資訊命令如下:

  • git config [--global] user.name "[name]"
  • git config [--global] user.email "[email address]"

啟動

一個git專案的初始有兩個途徑,分別是:

  • git init [project-name]:建立或在當前目錄初始化一個git程式碼庫
  • git clone url:下載一個專案和它的整個程式碼歷史

日常基本操作

在日常工作中,程式碼常用的基本操作如下:

  • git init 初始化倉庫,預設為 master 分支
  • git add . 提交全部檔案修改到快取區
  • git add <具體某個檔案路徑+全名> 提交某些檔案到快取區
  • git diff 檢視當前程式碼 add後,會 add 哪些內容
  • git diff --staged檢視現在 commit 提交後,會提交哪些內容
  • git status 檢視當前分支狀態
  • git pull <遠端倉庫名> <遠端分支名> 拉取遠端倉庫的分支與本地當前分支合併
  • git pull <遠端倉庫名> <遠端分支名>:<本地分支名> 拉取遠端倉庫的分支與本地某個分支合併
  • git commit -m "<註釋>" 提交程式碼到本地倉庫,並寫提交註釋
  • git commit -v 提交時顯示所有diff資訊
  • git commit --amend [file1] [file2] 重做上一次commit,幷包括指定檔案的新變化

關於提交資訊的格式,可以遵循以下的規則:

  • feat: 新特性,新增功能
  • fix: 修改 bug
  • refactor: 程式碼重構
  • docs: 文件修改
  • style: 程式碼格式修改, 注意不是 css 修改
  • test: 測試用例修改
  • chore: 其他修改, 比如構建流程, 依賴管理

分支操作

  • git branch 檢視本地所有分支
  • git branch -r 檢視遠端所有分支
  • git branch -a 檢視本地和遠端所有分支
  • git merge <分支名> 合併分支
  • git merge --abort 合併分支出現衝突時,取消合併,一切回到合併前的狀態
  • git branch <新分支名> 基於當前分支,新建一個分支
  • git checkout --orphan <新分支名> 新建一個空分支(會保留之前分支的所有檔案)
  • git branch -D <分支名> 刪除本地某個分支
  • git push <遠端庫名> :<分支名> 刪除遠端某個分支
  • git branch <新分支名稱> <提交ID> 從提交歷史恢復某個刪掉的某個分支
  • git branch -m <原分支名> <新分支名> 分支更名
  • git checkout <分支名> 切換到本地某個分支
  • git checkout <遠端庫名>/<分支名> 切換到線上某個分支
  • git checkout -b <新分支名> 把基於當前分支新建分支,並切換為這個分支

遠端同步

遠端操作常見的命令:

  • git fetch [remote] 下載遠端倉庫的所有變動
  • git remote -v 顯示所有遠端倉庫
  • git pull [remote] [branch] 拉取遠端倉庫的分支與本地當前分支合併
  • git fetch 獲取線上最新版資訊記錄,不合並
  • git push [remote] [branch] 上傳本地指定分支到遠端倉庫
  • git push [remote] --force 強行推送當前分支到遠端倉庫,即使有衝突
  • git push [remote] --all 推送所有分支到遠端倉庫

撤銷

  • git checkout [file] 恢復暫存區的指定檔案到工作區

  • git checkout [commit] [file] 恢復某個commit的指定檔案到暫存區和工作區

  • git checkout . 恢復暫存區的所有檔案到工作區

  • git reset [commit] 重置當前分支的指標為指定commit,同時重置暫存區,但工作區不變

  • git reset --hard 重置暫存區與工作區,與上一次commit保持一致

  • git reset [file] 重置暫存區的指定檔案,與上一次commit保持一致,但工作區不變

  • git revert [commit] 後者的所有變化都將被前者抵消,並且應用到當前分支

reset:真實硬性回滾,目標版本後面的提交記錄全部丟失了

revert:同樣回滾,這個回滾操作相當於一個提價,目標版本後面的提交記錄也全部都有

儲存操作

你正在進行專案中某一部分的工作,裡面的東西處於一個比較雜亂的狀態,而你想轉到其他分支上進行一些工作,但又不想提交這些雜亂的程式碼,這時候可以將程式碼進行儲存

  • git stash 暫時將未提交的變化移除

  • git stash pop 取出儲藏中最後存入的工作狀態進行恢復,會刪除儲藏

  • git stash list 檢視所有儲藏中的工作

  • git stash apply <儲藏的名稱> 取出儲藏中對應的工作狀態進行恢復,不會刪除儲藏

  • git stash clear 清空所有儲藏中的工作

  • git stash drop <儲藏的名稱> 刪除對應的某個儲藏

三、總結

git常用命令速查表如下所示: