請收下這份 Git 掃盲手冊

你們好,我是小七

前言

Git是程序員寫項目必備的一個工具,工欲善其事必先利其器,顯然這把武器對於我來時只是發揮了它最簡單的功能,這不,前兩天我就在分支上合錯代碼了,雖然同事沒說什麼,可是這仍是很不該該犯的錯,因而我決定對Git作一個較爲詳細的學習和總結。git

Git介紹

Git是一個開源的分佈式版本控制系統,能夠有效、高速的管理從很小到很是大的項目版本管理。它不須要網絡的支持,現已成爲不少開發人員對項目版本管理的首選,也能夠用來管理本身的普通文檔版本。程序員

Git的命令不少,在平常開發中使用都只須要用到幾個簡單的命令便可,因此本文會先從_名詞解析_介紹,在介紹Git的_經常使用命令_在項目中的應用。github

名詞解析

對於Git能夠在官網下載使用,在介紹命令前也來理解幾個名詞概念服務器

工做區

指的是在電腦裏能看到的目錄,目錄裏有你操做的各類文件網絡

版本庫

在工做區有一個隱藏的文件叫.git,這個就是Git的版本庫,版庫裏包含稱爲stage的暫存庫,還有Git給咱們建立的第一個分支master,以及指向master的指針HEDEssh

遠程倉庫

githubgitlabgitee這寫平臺上建立的代碼倉庫,與本地版本庫作關聯,就能實現上傳版本項目或文檔分佈式

經常使用命令

Git在工做中經常使用的命令有工具

  • git config
  • git init
  • git clone
  • git status
  • git add
  • git commit
  • git log
  • git reset
  • git push
  • git pull
  • git stash
  • git branch
  • git checkout
  • git merge
  • git fetch
  • git tag

接下來會一一介紹這麼命令的用法gitlab

git config

配置我的信息,包括用戶名和郵箱
git config --global user.name "my name"
git config --global user.email "my email.com"

這樣在代碼後提交的提交記錄,就會是有本身設置的我的信息,一部分公司也會根據代碼提交的信息對代碼作審覈決定年終考評獎金等性能

ssh-keygen -t rsa -C "my email.com"

建立祕鑰,生成的祕鑰放在~/.ssh目錄下,根據提示所有回車便可,操做完成以後將公鑰放在github倉庫中,以後操做項目就免密輸入了

git init

初始化git倉庫
git init

初始化一個Git倉庫

git clone

克隆遠程倉庫
git clone <遠程倉庫連接>

當前的文件夾裏就會把遠程倉庫的項目下載到本地

git status

查看文件變更狀態
git status

能夠看到項目中的文件是否提交

git add

把工做區的文件提交到暫存區
git add <文件名>
git add .    // 提交工做區所有文件

是提交文件的第一步

git commit

把工做區的文件提交到git 倉庫
git commit -m <提交信息>

提交文件的第二步

git commit --amend -m <新的提交信息>

參數--amend不但能夠修改提交信息,若是暫存區有修改的話還能把上一次的提交替換掉

提交信息規範

  • fix:修復了一個 bug
  • feat:新增了一個功能
  • refactor:重構某塊代碼
  • perf:改進性能
  • docs:文檔相關
  • test:測試相關
  • ciCI/CD 相關
  • chore:其餘類型

舉例:若是新增了一個登錄功能提交信息能夠爲,feat: 添加登錄功能

git log

查看版本提交記錄
git log  //查看最近三次提交
git log --pretty=oneline  //一行輸出提交信息

能夠查看到版本的提交信息,包括提交人,日期,提交緣由,提交的惟一編號等

git reset

版本回退
git reset --hard HEAD^

HEAD^回退到上一個版本而且提交內容也會還原到上一個版本,HEAD表明版本,回退到前n個版本可用HEAD~N表示

git push

把git倉庫裏的文件推送到遠程倉庫

在提交前能夠給遠程倉庫起一個別名

git remote -v  //查看全部遠程倉庫別名
git remote add [別名] [遠程倉庫地址]
git push -u [別名] [分支名]

提交文件最後一步,-u用於第一次推送,能夠把本地分支和遠程倉庫分支作關聯。以後提交就不用加-u參數了。

git pull

把遠程倉庫的最新代碼拉取到本地併合並
git pull [別名] [分支名]

能夠拉取遠程倉庫的代碼併合併到本地 至關於git fetchgit merge

git fetch

只是拉取遠程倉庫代碼
git fetch [別名] [分支名]

取回更新後,會返回一個FETCH_HEAD ,指的是某個branch在服務器上的最新狀態,咱們能夠在本地經過git log -p FETCH_HEAD查看剛取回的更新信息

經過這些信息來判斷是否產生衝突,以肯定是否將更新merge到當前分支

git merge

將指定分支合代碼併到當前分支
git merge <指定分支名>

合併代碼時可能會產生衝突,解決便可正常運行

git stash

保存當前修改
git stash

把當前修改版本保存下來,能夠切換到其餘分支或拉取遠程分支也不會有衝突

git stash pop

把保存的版本取出來

git stash list

查看全部保存版本的信息,存儲能夠直接經過索引的位置來得到stash@{n}.

git branch

對分支進行增刪改查的操做
git branch

查看本地分支列表

git branch <分支名>

新建一個分支並命名

git branch -m <舊分支名> <新分支名>

修改本地分支名

git branch -d <分支名>

刪除本地分支

分支命名規範

  • master 主分支
  • develop 開發分支
  • feature/xxx 新功能分支
  • bugfix/xxx 修復 bug 分支
  • hotfix/xxx 熱修復分支,修復緊急bug
  • release/x.x.x 新版本分支

git checkout

切換分支
git checkout <分支名>

切換到指定分支上

git tag

爲項目標記里程碑
git tag <標籤名>

可在重要節點爲項目代碼作一個標記

總結

上述命令只是git的經常使用命令,把這些掌握了,應對平常開發是徹底足夠的,遇到一下複雜的狀況,Google一下便可,記得要把你遇到的問題和解決的方案都記錄下來哦,這樣再遇到相似問題就能觸類旁通了,把每個踩過的坑都變成你成長的營養

我是小七,一個喜歡讀書的的程序媛小姐姐,初入職場還有不少須要學習,喜歡分享本身的生活感悟和小菜雞的技術總結,感興趣的能夠搜索wx搜索,我說姑娘,關注我,和我一塊兒成長吧!
相關文章
相關標籤/搜索