你們好,我是小七
Git
是程序員寫項目必備的一個工具,工欲善其事必先利其器,顯然這把武器對於我來時只是發揮了它最簡單的功能,這不,前兩天我就在分支上合錯代碼了,雖然同事沒說什麼,可是這仍是很不該該犯的錯,因而我決定對Git
作一個較爲詳細的學習和總結。git
Git
是一個開源的分佈式版本控制系統,能夠有效、高速的管理從很小到很是大的項目版本管理。它不須要網絡的支持,現已成爲不少開發人員對項目版本管理的首選,也能夠用來管理本身的普通文檔版本。程序員
Git
的命令不少,在平常開發中使用都只須要用到幾個簡單的命令便可,因此本文會先從_名詞解析_介紹,在介紹Git
的_經常使用命令_在項目中的應用。github
對於Git
能夠在官網下載使用,在介紹命令前也來理解幾個名詞概念服務器
指的是在電腦裏能看到的目錄,目錄裏有你操做的各類文件網絡
在工做區有一個隱藏的文件叫.git
,這個就是Git
的版本庫,版庫裏包含稱爲stage
的暫存庫,還有Git
給咱們建立的第一個分支master
,以及指向master
的指針HEDE
ssh
在github
、gitlab
或gitee
這寫平臺上建立的代碼倉庫,與本地版本庫作關聯,就能實現上傳版本項目或文檔分佈式
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 --global user.name "my name" git config --global user.email "my email.com"
這樣在代碼後提交的提交記錄,就會是有本身設置的我的信息,一部分公司也會根據代碼提交的信息對代碼作審覈決定年終考評獎金等性能
ssh-keygen -t rsa -C "my email.com"
建立祕鑰,生成的祕鑰放在~/.ssh
目錄下,根據提示所有回車便可,操做完成以後將公鑰放在github
倉庫中,以後操做項目就免密輸入了
初始化git倉庫
git init
初始化一個Git
倉庫
克隆遠程倉庫
git clone <遠程倉庫連接>
當前的文件夾裏就會把遠程倉庫的項目下載到本地
查看文件變更狀態
git status
能夠看到項目中的文件是否提交
把工做區的文件提交到暫存區
git add <文件名> git add . // 提交工做區所有文件
是提交文件的第一步
把工做區的文件提交到git 倉庫
git commit -m <提交信息>
提交文件的第二步
git commit --amend -m <新的提交信息>
參數--amend
不但能夠修改提交信息,若是暫存區有修改的話還能把上一次的提交替換掉
提交信息規範
fix
:修復了一個 bug
feat
:新增了一個功能refactor
:重構某塊代碼perf
:改進性能docs
:文檔相關test
:測試相關ci
:CI/CD
相關chore
:其餘類型舉例:若是新增了一個登錄功能提交信息能夠爲,feat: 添加登錄功能
查看版本提交記錄
git log //查看最近三次提交 git log --pretty=oneline //一行輸出提交信息
能夠查看到版本的提交信息,包括提交人,日期,提交緣由,提交的惟一編號等
版本回退
git reset --hard HEAD^
HEAD^
回退到上一個版本而且提交內容也會還原到上一個版本,HEAD
表明版本,回退到前n
個版本可用HEAD~N
表示
把git倉庫裏的文件推送到遠程倉庫
在提交前能夠給遠程倉庫起一個別名
git remote -v //查看全部遠程倉庫別名 git remote add [別名] [遠程倉庫地址]
git push -u [別名] [分支名]
提交文件最後一步,-u
用於第一次推送,能夠把本地分支和遠程倉庫分支作關聯。以後提交就不用加-u參數了。
把遠程倉庫的最新代碼拉取到本地併合並
git pull [別名] [分支名]
能夠拉取遠程倉庫的代碼併合併到本地 至關於git fetch
和 git merge
只是拉取遠程倉庫代碼
git fetch [別名] [分支名]
取回更新後,會返回一個FETCH_HEAD
,指的是某個branch
在服務器上的最新狀態,咱們能夠在本地經過git log -p FETCH_HEAD
查看剛取回的更新信息
經過這些信息來判斷是否產生衝突,以肯定是否將更新merge
到當前分支
將指定分支合代碼併到當前分支
git merge <指定分支名>
合併代碼時可能會產生衝突,解決便可正常運行
保存當前修改
git stash
把當前修改版本保存下來,能夠切換到其餘分支或拉取遠程分支也不會有衝突
git stash pop
把保存的版本取出來
git stash list
查看全部保存版本的信息,存儲能夠直接經過索引的位置來得到stash@{n}
.
對分支進行增刪改查的操做
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 tag <標籤名>
可在重要節點爲項目代碼作一個標記
上述命令只是git
的經常使用命令,把這些掌握了,應對平常開發是徹底足夠的,遇到一下複雜的狀況,Google
一下便可,記得要把你遇到的問題和解決的方案都記錄下來哦,這樣再遇到相似問題就能觸類旁通了,把每個踩過的坑都變成你成長的營養
我是小七,一個喜歡讀書的的程序媛小姐姐,初入職場還有不少須要學習,喜歡分享本身的生活感悟和小菜雞的技術總結,感興趣的能夠搜索wx搜索,我說姑娘,關注我,和我一塊兒成長吧!