最近在網易
工做之餘,遇到Git上面一些問題,趁此次的機會,補一補Git基礎知識。前端
公衆號前端UpUp,回覆Git,便可獲取腦圖。node
聯繫👉TianTianUp,有驚喜噢❤️webpack
腦圖👇git
本文更多梳理的是Git經常使用命令,非原理篇,須要這部分知識的能夠往下看。github
首先咱們的瞭解Git一般的操做流程,網上流行的不錯一張圖👇web
基於上面的圖,咱們就有接下來一些概念👇面試
版本庫👉.git
瀏覽器
git init
時,這個時候,會多一個.git
文件,咱們把這個文件稱之爲版本庫。.git文件
另一個做用就是它在建立的時候,會自動建立master分支,而且將HEAD指針指向master分支。工做區緩存
暫存區 (Index/Stage)bash
本地倉庫(Repository)
遠程倉庫(Remote)
git status
複製代碼
Changes not staged for commit
git add
Changes to be committed
git commit
nothing to commit, working tree clean
git config --list
複製代碼
git config --local --list
複製代碼
git config --global --list
複製代碼
git config --system --list
複製代碼
經過上述的命令,發現你並無配置用戶信息的話,接下來配置一下👇
git config --global user.name "your name"
複製代碼
git config --global user.email "youremail@github.com"
複製代碼
git branch
複製代碼
git branch -r
複製代碼
git branch -a
複製代碼
git checkout <branch-name>
// 舉個例子
git checkout feature/tiantian
複製代碼
git checkout -b <branch-name>
// 舉個例子👇
git checkout -b feature/tiantian
複製代碼
git branch -d <branch-name>
// 舉個例子👇
git branch -d feature/tiantian
複製代碼
git merge <branch-name>
// 舉個例子👇
git merge feature/tiantian
複製代碼
git branch --merged
複製代碼
git branch --no-merged
複製代碼
git branch -v
複製代碼
git push origin -d <branch-name>
複製代碼
git branch -m <oldbranch-name> <newbranch-name>
複製代碼
git checkout -b 本地分支名x origin/遠程分支名x
// 另一種方式,也能夠完成這個操做。
git fetch origin <branch-name>:<local-branch-name>
// fetch這個指令的話,後續會梳理
複製代碼
我理解的就是將遠程倉庫內容更新到本地,最近與師姐開發項目過程當中,使用的就是這個命令。
具體是這樣子的👇
git fetch origin <branch-name>:<local-branch-name>
複製代碼
branch-name
你要拉取的分支local-branch-name
一般而言,就是你本地新建一個新分支,將origin下的某個分支代碼下載到本地分支。舉個例子👇
git fetch origin feature/template_excellent:feature/template_layout
// 你的工做目錄下,就會有feature/template_layout
// 通常狀況下,咱們須要作的就是在這個分支上開發新需求
// 完成代碼後,咱們須要作的就是上傳咱們的分支
複製代碼
git fetch <遠程主機名>
複製代碼
git fetch <遠程主機名> <分支名>
複製代碼
git fetch origin :<local-branch-name>
// 等價於👇
git fetch origin master:<local-branch-name>
複製代碼
撤銷工做區修改
暫存區文件撤銷 (不覆蓋工做區)
版本回退
git reset --(soft | mixed | hard ) < HEAD ~(num) > |
指令 | 做用範圍 |
---|---|
--hard | 回退所有,包括HEAD,index,working tree |
--mixed | 回退部分,包括HEAD,index |
--soft | 只回退HEAD |
添加改動到stash
刪除暫存
查看stash列表
刪除所有緩存
恢復改動
master分支
develop 分支
feature分支
**這點我深有體會,我在網易,mentor就是這麼教個人,**一般建一個feature分支。
release分支
hotfix分支
參考來着:稻草叔叔
有了上述的基本瞭解後,那麼咱們就來看看總體的一個流程吧。
建立本地倉庫 git init
git init
連接本地倉庫與遠端倉庫
git remote add origin
origin默認是遠端倉庫別名 url 能夠是可使用https或者ssh的方式新建
檢查配置信息
Git user name 與email
git config --global user.name "yourname"
git config --global user.email "your_email"
生成SSH密鑰
ssh-keygen -t rsa -C "這裏換上你的郵箱"
cd ~/.ssh 裏面有一個文件名爲id_rsa.pub,把裏面的內容複製到git庫的個人SSHKEYs中
常看遠端倉庫信息
遠端倉庫從新命名
提交到緩存區
提交到本地倉庫
提交遠程倉庫
查看分支
建立新分支
切換分支
建立分支並切換
刪除分支
刪除遠程分支
切換分支
這個文件的做用,會去忽略一些不須要歸入Git管理這種,咱們也不但願出如今未跟蹤文件列表。
那麼咱們來看看如何配置該文件信息。
# 此行爲註釋 會被Git忽略
# 忽略 node_modules/ 目錄下全部的文件
node_modules
# 忽略全部.vscode結尾的文件
.vscode
# 忽略全部.md結尾的文件
*.md
# 但README.md 除外
!README.md
# 會忽略 doc/something.txt 但不會忽略doc/images/arch.txt
doc/*.txt
# 忽略 doc/ 目錄下全部擴展名爲txt文件
doc/**/*.txt
複製代碼
若是你以爲這篇內容對你挺有有幫助的話: