brew更新的时候不更新某个应用_这样用 Git 想不升职加薪都难!
Hi 小伙伴們,好久不見,狗哥今天要來聊一聊?Git?
小伙伴們是不是認為 Git 就是代碼項目的備份倉庫?把寫好的代碼推上去就備份好了?
Git 還帶有歷史版本管理能力,想要哪個版本就可以恢復到哪個版本?
如果小伙伴們只知道 Git 有這樣的功能,那小伙伴需要好好讀讀本篇干貨了,保你深入了解你不知道的?Git?!
Part 00?Git 簡介
Git?是一個開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。
Git?是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
Git 官方主頁:https://git-scm.com/
Part 01 Git 安裝
Windows
打開網頁?https://git-scm.com/download/win,然后根據小伙伴自己電腦的情況下載 Git
Linux
Debian / Ubuntu
安裝命令為:
# apt-get install git
Fedora /?Centos
安裝命令為:
# yum install git?( up to Fedora 21 and Centos?)
# dnf install git?( Fedora 22 and later )
Mac
需要先安裝?homebrew?工具:https://brew.sh/index_zh-cn
如果已安裝了?homebrew?工具,然后輸入命令安裝:$ brew install git
Part 02?Git 工作流程
git 的工作流程如下圖所示:
| 名稱 | 解釋 | 簡稱 |
| workspace | 本地的工作目錄 | A |
| index | 臨時保存本地改動 | B |
| local repository | 本地倉庫,記錄最后一次提交HEAD | C |
| remote repository | 遠程倉庫 | D |
參考:http://gityuan.com/2015/06/27/git-notes/
Part 03?Git 常用命令高頻使用命令
# 初始設置git config --global user.name "" # 設置用戶名git config --global user.email "" # 設置電子郵件 # 本地操作git add [-i] # 保存更新,-i為逐個確認。git status # 檢查更新。git commit [-a] -m "" # 提交更新,-a為包含內容修改和增刪,-m為說明信息,也可以使用 -am。 # 遠端操作git clone # 克隆到本地。git fetch # 遠端抓取。git merge # 與本地當前分支合并。git pull [] [] # 抓取并合并,相當于第2、3步git push [-f] [] [] # 推送到遠端,-f為強制覆蓋git remote add # 設置遠端別名git remote [-v] # 列出遠端,-v為詳細信息git remote show # 查看遠端信息git remote rename # 重命名遠端git remote rm # 刪除遠端git remote update [] # 更新分支列表 # 分支相關git branch [-r] [-a] # 列出分支,-r遠端 ,-a全部git branch # 新建分支git branch -b # 新建并切換分支git branch -d # 刪除分支git checkout # 切換到分支git checkout -b [-t /] #-b新建本地分支并切換到分支, -t綁定遠端分支git merge # 合并某分支到當前分支初始化
git init # 創建git clone /path/to/repository # 檢出git config --global user.email "you@example.com" # 配置emailgit config --global user.name "Name" # 配置用戶名版本相關操作
git add # 文件添加,A → Bgit add . # 所有文件添加,A → Bgit commit -m "代碼提交信息" # 文件提交,B → Cgit commit --amend # 與上次commit合并, *B → Cgit push origin master # 推送至master分支, C → Dgit pull # 更新本地倉庫至最新改動, D → Agit fetch # 抓取遠程倉庫更新, D → Cgit log # 查看提交記錄git status # 查看修改狀態git diff # 查看詳細修改內容git show # 顯示某次提交的內容撤銷操作
git reset <file> # 某個文件索引會回滾到最后一次提交, C → Bgit reset # 索引會回滾到最后一次提交, C → Bgit reset --hard # 索引會回滾到最后一次提交, C → B → Agit checkout # 從index復制到workspace, B → Agit checkout -- files # 文件從index復制到workspace, B → Agit checkout HEAD -- files # 文件從local repository復制到workspace, C → A分支相關
git checkout -b branch_name # 創建名叫“branch_name”的分支,并切換過去git checkout master # 切換回主分支git branch -d branch_name # 刪除名叫“branch_name”的分支git push origin branch_name # 推送分支到遠端倉庫git merge branch_name # 合并分支branch_name到當前分支(如master)git rebase # 衍合,線性化的自動, D → A沖突處理
git diff # 對比workspace與indexgit diff HEAD # 對于workspace與最后一次commitgit diff # 對比差異git add # 修改完沖突,需要add以標記合并成功其他
gitk # 開燈圖形化gitgit config color.ui true # 彩色的 git 輸出git config format.pretty oneline # 顯示歷史記錄時,每個提交的信息只顯示一行git add -i # 交互式添加文件到暫存區參考:http://gityuan.com/2015/06/27/git-notes/
學習 Git 資料:
交互式 Git 學習?https://learngitbranching.js.org/?locale=zh_CN
ProGit 在線文檔?https://www.progit.cn/
ProGit 官方文檔?https://git-scm.com/book/zh/v2
圖解 Git?https://marklodato.github.io/visual-git-guide/index-zh-cn.html
25個Git用法技巧?https://www.techug.com/post/25-git-tips.html
Git Submodule 使用方法:
https://blog.justwe.site/post/git-submodule/
https://git-scm.com/docs/git-submodule
Part 04 Git 分支方案
分支分類
| Master | 歷史分支 | 存儲了正式發布的歷史,為主分支(保護分支),不能直接在master上進行修改代碼和提交; |
| Hotfix | 維護分支 | 為bug修復分支,需要根據實際情況對已發布的版本進行漏洞修復,必須從master拉取; |
| Release | 發布分支 | 發布分支,主要用于測試或修復bug; |
| Develop | 開發分支 | 作為功能的集成分支,開發完成需要提交測試的功能合并到該分支; |
| Feature | 功能分支 | 大家根據不同需求創建獨立的功能分支,開發完成后合并到develop分支; |
流程圖解
作者:程序員與工匠 參考:https://www.jianshu.com/p/4ec0eda2f904
Part 05 Git 提交規范
Commit message一般包括三部分:Header、Body 和 Footer。
# Header type(scope):subjectPresent-tense summary under 50 characters # Body* More information about commit (under 72 characters). # Footerhttp://project.management-system.com/ticket/123Header?
第一行是不超過50個字的提要,可使用 type(scope):subject 的形式
type:用于說明commit的類別,規定為如下幾種
feature:新增功能;
fix:修復bug;
docs:修改文檔;
refactor:代碼重構,未新增任何功能和修復任何bug;
build:改變構建流程,新增依賴庫、工具等(例如webpack修改);
style:僅僅修改了空格、縮進等,不改變代碼邏輯;
perf:改善性能和體現的修改;
chore:非src和test的修改;
test:測試用例的修改;
ci:自動化流程配置修改;
revert:回滾到上一個版本;
scope:【可選】用于說明commit的影響范圍
subject:commit 的簡要說明,盡量簡短
Body
然后空一行,寫對本次 commit 的詳細描述,可分多行;內容需羅列出 :
改動原因
主要變動
需要注意的問題。
Footer
最后,提供對應的網址(比如Bug ticket 、Jira 、GitLab Issue 等)。
不兼容變動:需要描述相關信息
關閉指定Issue:輸入Issue信息
參考:https://www.jianshu.com/p/4ec0eda2f904
Part 06 Git Tag 標簽規范
Tag (Version) 采用三段式,v 版本.里程碑.序號,如?v1.2.1
架構升級或架構重大調整,修改 第1位 版本;
新功能上線或者模塊大的調整,修改第2位 里程碑;
bug修復上線,修改第3位 序號;
Git 的分享到這里就結束了,如果小伙本們有好的建議或者有想了解的技術知識,歡迎來到狗哥的公眾號 【狗哥不茍】?下留言~
---- /?END / ----
狗哥不茍?就是這樣分享干貨
未經授權禁止轉載
若有問題歡迎反饋
總結
以上是生活随笔為你收集整理的brew更新的时候不更新某个应用_这样用 Git 想不升职加薪都难!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gmail注册手机号不能用于验证_注册G
- 下一篇: 使用nginx负载均衡的webservi