git常用指令總結
前言
Git 作為開發中最常用的程式碼版本控制工具,本文來總結下常見的使用指令。
正文
1、git 倉庫常見概念
2、常用命令
(1)git init 初始化本地專案
將本地專案初始化git目錄,在當前資料夾下回多出 .git 字尾的檔案
(2)git clone 將遠端倉庫克隆到本地
與 git init 命令相似,git init 是將當前資料夾作為本地倉庫,git clone 是將遠端團隊協作倉庫下載至本地作為本地倉庫
(3)git status 檢視工作區、暫存區狀態
如下會提示當前分支,當前暫存區需要提交的內容
(4)git add
git add fileName 將名為fileNmae的檔案新增到暫存區
git add . add後面加空格加點,表示將所有檔案新增到暫存區
(5)git commit
git commit -m "提交說明" 將暫存區的檔案進行提交到本地倉庫對應的分支(分支管理常常用於程式碼的版本控制,同樣也可以為了方便多人協作,比如開發中,master表示線上分支,develop 表示開發用的分支,同樣也可以在develop 分支基礎上建立每個開發人員對應的分支,在開發完成後,提交到自己獨立的分支,測試通過後,通過每個人的獨立分支合併到 develop 分支,待develop分支測試通過的功能合併至master線上分支上線)
提交說明需要注意以下格式:
a、feat 表示新增新特性 ,例如:git commit -m "feat:新增微信支付功能"
b、fix 表示修復 bug
c、docs 表示僅僅修改了文件
d、style 表示僅僅修改了空格、格式縮排、逗號等等,不改變程式碼邏輯
e、refactor 表示程式碼重構,沒有新增新功能或者修復bug
f、test 表示增加測試用例
g、chore 表示改變構建流程、或者增加依賴庫、工具等
h、revert 表示回滾到上一個版本
(6)git fetch 和 git merge
git fetch 將遠端倉庫對應分支上的最新修改下載下來,比如可以 git fetch origin master ,該命令只是把遠端修改資料下載到了遠端的副本倉庫,並沒有下在到本地倉庫
git merge master 合併master分支到當前所在分支
下面需要了解一下概念:
(1)master 這個很好理解,它代表本地的某個分支名。
(2)origin master 代表著兩個概念,前面的 origin 代表遠端名,後面的 master 代表遠端分支名
(3)origin/master 只代表一個概念,即遠端分支名,是從遠端拉取程式碼後在本地建立的一份拷貝,叫跟蹤分支,與 本地 master 十分相似(因此也有人把它叫作本地分支)。
(7)git pull
將當前分支在遠端倉庫中的程式碼拉取到本地版本庫並進行合併,效果相當於 git fetch + git merge,但是還是存在差異,如下:
我們每次commit 之後會生成一個hash值,代表本地修改的版本號,然後push到遠端倉庫,遠端倉庫會記錄這個hash值。git fetch 只會更新跟蹤分支,(我們無法對跟蹤分支直接進行操作),比如我們本地的 .git 資料夾下有 head 和 remotes 兩個資料夾,分別記錄本地分支和正在跟蹤的分支,暫定這兩個分支的hash都為1,當遠端協作倉庫有人提交了程式碼後,遠端倉庫最新的提交hash變為了2,在本地執行 git fetch 後,會將跟蹤分支的hash變為2,但是本地分支hash還是原來的1,這時候如果執行 git merge origin/master 就會將本地的master分支hash更新為2。如果不執行git fetch 和 git merge 直接執行 git pull ,則會將本地分支和跟蹤分支更新到最新的2.
git fetch 、git merge 、git pull三者區別如下:
(8)git push
將本地版本庫中的程式碼推送至遠端協作倉庫
(9)git remote
a、git remote add 遠端倉庫別名 遠端倉庫地址
該命令建立本地版本庫和遠端倉庫的關聯,我們如果通過git init 建立本地倉庫,在推送至遠端協作倉庫的時候,需要先新增之間的關聯
b、git remote -v 常看當前本地版本庫關聯的協作倉庫
(10)git branch 分支相關
git branch 分支名 建立新分支,例如git branch dev-pay 建立dev-pay分支(預設基於master建立)
git push 遠端倉庫別名 遠端倉庫分支名 將新增分支推至遠端倉庫,例如:git push origin dev-pay,如果在當前的dev-pay 修改了程式碼,提交時需要 git branch --set-upstream origin dev(origin 預設為遠端倉庫別名)
git branch 檢視本地倉庫分支,* 表示當前分支
git branch -r 檢視所有遠端倉庫分支
git branch -a 檢視所有分支
git branch -d 分支名 刪除本地指定分支
git push origin :分支名 分支錢加冒號代表刪除遠端分支
git checkout dev-pay 切換到dev-pay分支
a、如果想基於某指定分支建立新分支,比如基於dev-pay,需要如下命令:
(1)git checkout dev-pay git pull 切換到dev-pay 分支並拉去最新程式碼
(2)git checkout -b dev-info 建立dev-info 分支
(3)git branch -a 檢視所有分支,發現遠端還沒有dev-info 分支
(4)git push origin dev-info 將本地新增分支推送到遠端,再次檢視就會發現遠端也多了該分支
(5)git branch --set-upstream-to=origin/dev-info 建立當前分支和遠端倉庫之間的分支guanlian
b、基於某次commit hash 值255da52811720773ae627e705a6ddab6e8f9019b建立指定分支 dev-hash
(1)git log 檢視需要版本的 commit 的 hash 值
(2)git checkout -b dev-hash 255da52811720773ae627e705a6ddab6e8f9019b 本地建立dev-hash 並切換
(3)重複上面基於分支建立分支
(11)git reset 和 git revert
git log 檢視每次commit 的hash值
a、git reset
git reset --hasd 255da52811720773ae627e705a6ddab6e8f9019b
git add .
git commit -m "回退"
git push -f 強行推送到遠端
b、git revert
git revert 255da52811720773ae627e705a6ddab6e8f9019b
區別:給reset 會將版本回退回去,撤銷之後的提交,revert 會將本地提交內容修改為原來版本的內容,作為一次新的提交
c、將某個檔案回退到某次提交
1 檢視提交歷史,檢視想要回退版本的版本號git log index.txt
2 回滾某個檔案到指定版本git reset 版本號 index.txt
3 提交到本地倉庫-拉取合併程式碼-提交到遠端git commit -m '提交描述'
4 選擇該檔案git checkout index.txt
5 push到遠端倉庫git push
3、派生倉庫提交命令
git add .
git commit -m "fix:提交"
git remote -v 檢視本地關聯的倉庫
git pull origin 拉取派生倉庫程式碼到本地
git push origin 提交本次修改的程式碼到派生倉庫
git remote update yaxt 更新原始倉庫狀態
git pull yaxt develop 拉取原始倉庫develop分支到本地
git push origin 提交到派生倉庫
寫在最後
以上就是本文的全部內容,希望給讀者帶來些許的幫助和進步,方便的話點個關注,小白的成長之路會持續更新一些工作中常見的問題和技術點。