Submit Search
Upload
Git流派與工作流程.pptx
•
0 likes
•
47 views
健
健誠 呂
Follow
介紹flow, 與git各種braninch modeling
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 40
Recommended
大家應該都要會的工具 Git 從放棄到會用2-分支篇
大家應該都要會的工具 Git 從放棄到會用2-分支篇
Alan Tsai
Git Tutorial 教學
Git Tutorial 教學
Wen-Tien Chang
Git and git hub
Git and git hub
唯 李
工程師必備第一工具 - Git
工程師必備第一工具 - Git
Alan Tsai
A successful git branching model 導讀
A successful git branching model 導讀
Wen Liao
How we migrate TFS to Git ( using Azure DevOps )
How we migrate TFS to Git ( using Azure DevOps )
Roberson Liou
GIT實務操作與理論
GIT實務操作與理論
鵬 大
Git原理与实战 201607
Git原理与实战 201607
Charles Tang
Recommended
大家應該都要會的工具 Git 從放棄到會用2-分支篇
大家應該都要會的工具 Git 從放棄到會用2-分支篇
Alan Tsai
Git Tutorial 教學
Git Tutorial 教學
Wen-Tien Chang
Git and git hub
Git and git hub
唯 李
工程師必備第一工具 - Git
工程師必備第一工具 - Git
Alan Tsai
A successful git branching model 導讀
A successful git branching model 導讀
Wen Liao
How we migrate TFS to Git ( using Azure DevOps )
How we migrate TFS to Git ( using Azure DevOps )
Roberson Liou
GIT實務操作與理論
GIT實務操作與理論
鵬 大
Git原理与实战 201607
Git原理与实战 201607
Charles Tang
Git Flow 管理
Git Flow 管理
Pu Lee
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
PingLun Liao
Git for everyone
Git for everyone
書慶 黃書慶
Git flow
Git flow
shaokun
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
Wen-Tien Chang
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
Cloud Tu
Git flow 與團隊合作
Git flow 與團隊合作
Bo-Yi Wu
Git入門介紹
Git入門介紹
mudream4869
Git+使用教程
Git+使用教程
gemron
電子內容管理 使用Git 與 github 1
電子內容管理 使用Git 與 github 1
Alan Tsai
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
Jui An Huang (黃瑞安)
Git in a nutshell
Git in a nutshell
Nelson Tai
寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
Use Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git Workflow
Liangjun Jiang
Git簡報
Git簡報
Ted Liang
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
Bachue Zhou
Git 入门实战
Git 入门实战
icy leaf
Git Branch Practice
Git Branch Practice
Hsiao-Ting Wang
連哈秋都懂的Git教學
連哈秋都懂的Git教學
hydai
Git入门与实践
Git入门与实践
LC2009
More Related Content
Similar to Git流派與工作流程.pptx
Git Flow 管理
Git Flow 管理
Pu Lee
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
PingLun Liao
Git for everyone
Git for everyone
書慶 黃書慶
Git flow
Git flow
shaokun
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
Wen-Tien Chang
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
Cloud Tu
Git flow 與團隊合作
Git flow 與團隊合作
Bo-Yi Wu
Git入門介紹
Git入門介紹
mudream4869
Git+使用教程
Git+使用教程
gemron
電子內容管理 使用Git 與 github 1
電子內容管理 使用Git 與 github 1
Alan Tsai
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
Jui An Huang (黃瑞安)
Git in a nutshell
Git in a nutshell
Nelson Tai
寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
Use Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git Workflow
Liangjun Jiang
Git簡報
Git簡報
Ted Liang
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
Bachue Zhou
Git 入门实战
Git 入门实战
icy leaf
Git Branch Practice
Git Branch Practice
Hsiao-Ting Wang
連哈秋都懂的Git教學
連哈秋都懂的Git教學
hydai
Git入门与实践
Git入门与实践
LC2009
Similar to Git流派與工作流程.pptx
(20)
Git Flow 管理
Git Flow 管理
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
Git for everyone
Git for everyone
Git flow
Git flow
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git flow 與團隊合作
Git flow 與團隊合作
Git入門介紹
Git入門介紹
Git+使用教程
Git+使用教程
電子內容管理 使用Git 與 github 1
電子內容管理 使用Git 與 github 1
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
Git in a nutshell
Git in a nutshell
寫給大家的 Git 教學
寫給大家的 Git 教學
Use Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git Workflow
Git簡報
Git簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
Git 入门实战
Git 入门实战
Git Branch Practice
Git Branch Practice
連哈秋都懂的Git教學
連哈秋都懂的Git教學
Git入门与实践
Git入门与实践
Git流派與工作流程.pptx
1.
Git流派(Branching models) 與 工作流程(Workflow)
2.
Outline - 工作流程 - Git流程 -
Git Flow - Github Flow - Gitlab Flow - TBD 就幹話, 想講啥就說啥
3.
沒Flow是不是一種Flow? 真男人! 就應該直接commit在 main上
4.
Master ? Main?
5.
6.
2020
7.
What is Flow?
8.
9.
Flow = 流程
= 遊戲規則
10.
沒Flow的優缺 優 : 簡單直接 缺
: 人多就雜就亂
11.
開Branch的意義? Branching is a
core concept in Git, and the entire GitHub Flow is based upon it. There's only one rule: anything in the master branch is always deployable. Git Branching
12.
啊! 用Git就是要開分支啊! 一個Branch約 30-41
Bytes (sha + 空格) 比雞蛋還便宜! 開爛
13.
14.
2010被提出 有兩條long-lived branch :
master & develop release : internal test, partial modify hotfix : very urgent issue
15.
優點 : 歷史紀錄保存完整清晰 缺點
: 流程複雜, 對Git熟練度有一定考驗 不同的功能散落在不同的branch 能想看看這在大型團隊與快速交付價值上有什麼問題
16.
17.
2011年被Github提出 只有1條long-lived branch :
master PullRequest * 1
18.
優點 : 超級簡單 缺點
: 太簡單了! 需要多個版本 沒要立刻發布 需要有良好的基礎建設(自動化, 測試, 回滾...)
19.
20.
2016被Gitlab提出 1條long-lived (upstream) branch
: main 1條long-loved branch for deploy : production MergeRequest * n個 如果提交/合併順序與上線的不同 : cherry-pick
21.
第一個2.3-stable的版本, 在upstream上commit修正後, 利用cherry- pick挑剛剛在upstream分支上的commit,
發布到2.3-stable上. (Google Chromium和Red Hat也是如此)
22.
Why Cherry? Not
Apple? Not Banana? OXford
23.
Github Flow :
Pull Request Gitlab Flow : Merge Request
24.
Git Pull Process 流程一樣,
只是命名跟平台實現細節有點差異
25.
優點 : - 提供了一個結構化方法 與標準化的流程 -
可以進行審查/診斷掃描 等 CI流程, 增加質量與 減少錯誤 缺點 : - 基礎建設需要額外的設置 與管理 - 需要一點點學習成本
26.
Advanced Issue 不跟區塊鏈相關的沾點邊 很可能被懷疑來公司划水講幹話的
27.
Git Object Storage
like Merkle Tree?
28.
Merkle Tree 快速校驗整個樹的 完整性、一致性
29.
Live Demo
30.
31.
Git透過Merkle tree和DAG的結合使用, 就能作到快速校驗完整性以及 快速地進行版本操作(分支合併等等) ps. Git就是一種基於DAG(Directed
Acyclic Graph) 的版本控制系統
32.
Advanced Workflow TBD(Trunk Based
Developement) 真男人! 就應該直接commit在 main上
33.
1條long-lived branch :
main (trunk 主幹/樹幹) 有要release, 開新分支 Feature Flag? 優: 簡單, 都在main 缺: 測試要完整、 基礎建設要完整、 團隊成員的程度要求高
34.
35.
36.
有誰跑這流程呢? Google Facebook(Meta) Microsoft
37.
(IAC) Infrastructure as
Code
38.
不要為了Flow而Flow! 到底是團隊去適應Flow? 還是調整Flow來適應團隊!?
39.
40.
Finally - Branch的作用? - 多人協作時的優缺? -
接著佈署到Testnet和Product之後, 會有HotFix 的需求, 如何定義好管理HotFix的發布與更新流 程呢? 今年下半年朋友會出第一本在台灣關於TBD的書,請多支持! 能購買Continuous Integration: impoving software quality and reducing risk這本神書
Editor's Notes
如果某個提交在審查期間被駁回或修改,而其他提交已經合併並上線,那麼為了能夠上線該修改,需要使用 cherry-pick 將其應用到上線的分支中。 cherry-pick 命令的作用是將指定提交的更改應用到當前分支中,這樣就可以將某個提交的更改應用到另一個分支中。 然而,使用 cherry-pick 也可能會帶來一些風險,因為它可以導致分支之間的代碼差異性,並使代碼庫的歷史記錄變得複雜。因此,建議在使用 cherry-pick 時,應當非常小心,確保它不會導致代碼庫的不穩定性。 又或是我需要另一個feature-branch已經好的commit的功能, 也能使用cherry-pick又或者product branch有bug, 可能有人會從前一個長期分支做cherry pick hotfix commit的動作, 避免將還沒要上線的給整合發布 但這東西其實用得太多,會導致後期管理困難
init -> create file , commit -> create more files , and commit-> create branch ->modify file, commit-> tag tree .git => 將.git folder以tree狀方式展開其內容; 能看到objects有東西產生了git cat-file -t sha1 => 將sha1 object的type看是blob, commit, treegit cat-file blob sha1 => 看sha1 blob的內容git cat-file commit sha1 => 看sha1 commit的內容git cat-file tree sha1 => 看sha1 tree的內容tree .git/refs/ => show heads of branch and tagscat .git/refs/heads/[master] => show head指向哪裡cat .git/HEAD => show head指向哪裡git ls-tree commitid | git mktree =>建立tree物件git ls-file –others => 列出沒被追蹤的文件
多人協作時, 可以隔離出一個人有獨立的工作空間branch可以使不同的任務分別(平行)開發, 增加效率版本管理時, 也能藉由branch分離多版本(revert / merge)缺點:容易在合併時發生衝突很容易有分支很久很久才要去合併多人協作時, 開不同分支, 有可能有重工問題很多長生命分支時, 開發或是佈署該以哪個為主?