SlideShare a Scribd company logo
Git & Git flow
從小木屋到世界奇觀
Agenda
• VCS
• Git
• Git Flow
VCS Version Control System
版本控制系統
為什麼需要版本控制?
為什麼需要版本控制?
• 檔案被別人或自己覆蓋、甚至遺失
為什麼需要版本控制?
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
為什麼需要版本控制?
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
• 想知道跟前幾天寫的差異在哪裏
為什麼需要版本控制?
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
• 想知道跟前幾天寫的差異在哪裏
• 誰改了這行程式碼?為什麼?
為什麼需要版本控制?
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
• 想知道跟前幾天寫的差異在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
可以隨時復原修改,回到之前的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
可以隨時復原修改,回到之前的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
可以隨時復原修改,回到之前的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
保留修改歷史記錄,以供查詢
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
可以隨時復原修改,回到之前的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
保留修改歷史記錄,以供查詢
• 程式上線後,需要分成維護版和開發版
所以 VCS 就誕生了
\\٩( 'ω' )‫و‬ ////
VCS的歷史
黑暗時代
Local VCS 資料夾管理法
COPY
封建時代
Centralized VCS (Lock Ver.)
Server 大陸
Server 大陸
Server 大陸
Server 大陸
Ceckout
Server 大陸
Lock Request
Server 大陸
Server 大陸
Server 大陸
Commit
Server 大陸
Checkout
Server 大陸
Lock Request
Server 大陸
Server 大陸
Server 大陸
Commit
Server 大陸
Checkout
Server 大陸
Lock Request
Server 大陸
我是過了很久的時間線...
Server 大陸
Server 大陸
Server 大陸
城堡時代
Centralized VCS (Merge Ver.)
Server 大陸
Server 大陸
Ceckout
Server 大陸
Commit
Server 大陸
Commit
Server 大陸
Merge
Server 大陸
Server 大陸
Server 大陸
Commit
Server 大陸
Conflict
但是...
Server 大陸
Server 大陸
Server 大陸
Commit
Server 大陸
Server 大陸
Server 大陸
Server 大陸
帝王時代
Distributed VCS
Server 大陸
Server 大陸
Server 大陸
Server 大陸
Clone
Server 大陸
Checkout Checkout
Server 大陸
Server 大陸
Commit
Server 大陸
Server 大陸
Push
Server 大陸
Server 大陸
Server 大陸
Commit
Server 大陸
Server 大陸
Push
Server 大陸
Push
Server 大陸
Pull
Server 大陸
Merge
Server 大陸
Push
Server 大陸
Commit Commit
Git
簡介
Linus Torvalds Linux之父
Linux Kernel
Open Source
Distribute VCS
所有內容都在本地端
開分支成本低
快
省空間
Git
基本操作
Server 大陸
Server 大陸
Origin / Remote
Server 大陸
Origin / Remote
Repository
Server 大陸
Working Copy
Server 大陸
Server 大陸
$ git clone <URL>
Server 大陸
$ git checkout <branch>
Commit
Staging area
Staging area
Staging area
Staging area
$ git add <file>
Staging area
Staging area
Staging area
$ git commit
Staging area
Staging area
Server 大陸
Server 大陸
$ git push <remote>
Server 大陸
Server 大陸
Git flow
邁向世界奇觀
Git flow 是什麼?
一套管理開發和版本分支的流程
http://danielkummer.github.io/git-flow-cheatsheet/
兩個主要分支
master
永遠處在 Production ready 穩定狀態
master
永遠處在 Production ready 穩定狀態
develop
最新的下次發佈開發狀態
三個支援分支
feature
● 開發新功能或修 Bugs
feature
● 開發新功能或修 Bugs
● 從 develop 分支出來
feature
● 開發新功能或修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 develop
feature
● 開發新功能或修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 develop
release
feature
● 開發新功能或修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 develop
release
● 準備要 release 的版本,只修 Bugs
feature
● 開發新功能或修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 develop
release
● 準備要 release 的版本,只修 Bugs
● 從 develop 分支出來
feature
● 開發新功能或修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 develop
release
● 準備要 release 的版本,只修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 master 和 develop
feature
● 開發新功能或修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 develop
release
● 準備要 release 的版本,只修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 master 和 develop
hotfix
feature
● 開發新功能或修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 develop
release
● 準備要 release 的版本,只修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 master 和 develop
hotfix
● 等不及 release 版本,必須馬上修
master 趕上線
feature
● 開發新功能或修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 develop
release
● 準備要 release 的版本,只修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 master 和 develop
hotfix
● 等不及 release 版本,必須馬上修
master 敢上線
● 從 master 分支出來
feature
● 開發新功能或修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 develop
release
● 準備要 release 的版本,只修 Bugs
● 從 develop 分支出來
● 完成後 merge 回 master 和 develop
hotfix
● 等不及 release 版本,必須馬上修
master 敢上線
● 從 master 分支出來
● 完成後 merge 回 master 和 develop
Git flow 如何運作?
第一個 commit 節點
master
第一個 commit 節點
$ git flow init
master
master
develop
master
develop
$ git flow feature start XXX
feature
develop
develop
feature
develop
feature
$ git flow feature start YYY
$ git flow feature finish XXX
develop
develop
$ git flow feature finish YYY
develop
Release
develop
develop
$ git flow release start v1.0.0
develop
release 支線 (v1.0.0)
release v1.0.0
release v1.0.0
release v1.0.0
$ git flow release finish v1.0.0
v1.0.0
tag
v1.0.0
Hotfix
master
master
$ git flow hotfix start v1.0.1
master
hotfix 支線 (v1.0.1)
v1.0.0
hotfix v1.0.1
v1.0.0
hotfix v1.0.1
v1.0.0
hotfix v1.0.1
$ git flow hotfix finish v1.0.1
v1.0.0
develop
v1.0.0
developv1.0.1
v1.0.0
develop
v1.0.1
master
master
master
develop
master
develop
master
develop
feature
feature
master
develop
feature
feature
master
develop
feature
master
develop
feature
master
develop
master
develop
master
develop
release v1.0.1
master
develop
release v1.0.1
master
develop
release v1.0.1
master
develop
v1.0.0
master
develop
v1.0.0
hotfix v1.0.1
master
develop
v1.0.0
hotfix v1.0.1
master
develop
v1.0.0
master
develop
v1.0.0 v1.0.1
master
develop
v1.0.0 v1.0.1
master
feature
v1.1.0
Policy
Developer
Developer
● 一般開發者只開 feature branch,完成後發 pull
request 做 code review
Developer
Developer
Leader
● 一般開發者只開 feature branch,完成後發 pull
request 做 code review
● 只有 Project Leader 可以 commit & merge 進 develop
branch
Developer
Developer
Leader
● 一般開發者只開 feature branch,完成後發 pull
request 做 code review
● 只有 Project Leader 可以 commit & merge 進 develop
branch
● 只有 Production Team 可以管理 master branch
Production Team
Developer
Developer
Leader
Production Team
● 一般開發者只開 feature branch,完成後發 pull
request 做 code review
● 只有 Project Leader 可以 commit & merge 進 develop
branch
● 只有 Production Team 可以管理 master branch
终わり
Git & git flow

More Related Content

What's hot

Git 經驗分享
Git 經驗分享Git 經驗分享
Git 經驗分享
Mu Chun Wang
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學
Duncan Chen
 
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Cloud Tu
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
Bo-Yi Wu
 
Xcode 的 git 版本管理
Xcode 的 git 版本管理Xcode 的 git 版本管理
Xcode 的 git 版本管理
彼得潘 Pan
 
工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
Alan Tsai
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
Will Huang
 
Gitlab
GitlabGitlab
Gitlab
Tom Chen
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
Max Ma
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
Mu Chun Wang
 
電子內容管理 使用Git 與 github 1
電子內容管理   使用Git 與 github 1電子內容管理   使用Git 與 github 1
電子內容管理 使用Git 與 github 1
Alan Tsai
 
Use Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git WorkflowUse Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git Workflow
Liangjun Jiang
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
Nelson Tai
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub維佋 唐
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
icy leaf
 
Git share
Git shareGit share
Git share
mactanxin
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
Chu-Siang Lai
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作
奕浦 郭
 

What's hot (20)

Git 經驗分享
Git 經驗分享Git 經驗分享
Git 經驗分享
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學
 
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Xcode 的 git 版本管理
Xcode 的 git 版本管理Xcode 的 git 版本管理
Xcode 的 git 版本管理
 
工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
 
Gitlab
GitlabGitlab
Gitlab
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
 
電子內容管理 使用Git 與 github 1
電子內容管理   使用Git 與 github 1電子內容管理   使用Git 與 github 1
電子內容管理 使用Git 與 github 1
 
Use Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git WorkflowUse Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git Workflow
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
 
Git share
Git shareGit share
Git share
 
Git Tutorial 教學
Git Tutorial 教學Git Tutorial 教學
Git Tutorial 教學
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作
 

Viewers also liked

Get Familiar With Git
Get Familiar With Git Get Familiar With Git
Get Familiar With Git
Nigam Goyal
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
Ranjith Siji
 
Git training
Git trainingGit training
Git training
adm_exoplatform
 
Ruby Basics
Ruby BasicsRuby Basics
Ruby Basics
SHC
 
Git branching-model
Git branching-modelGit branching-model
Git branching-model
Aaron Huang
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
Sven Peters
 
Git
GitGit
Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
Lemi Orhan Ergin
 

Viewers also liked (8)

Get Familiar With Git
Get Familiar With Git Get Familiar With Git
Get Familiar With Git
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
 
Git training
Git trainingGit training
Git training
 
Ruby Basics
Ruby BasicsRuby Basics
Ruby Basics
 
Git branching-model
Git branching-modelGit branching-model
Git branching-model
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
Git
GitGit
Git
 
Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
 

Similar to Git & git flow

Learn git
Learn gitLearn git
Learn git
甘 李
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Wen-Tien Chang
 
Github简介及实用入门
Github简介及实用入门Github简介及实用入门
Github简介及实用入门
Rongxing Liu
 
Git Flow 管理
Git Flow 管理Git Flow 管理
Git Flow 管理
Pu Lee
 
Git内部培训文档
Git内部培训文档Git内部培训文档
Git内部培训文档superwen
 
Git原理与实战 201607
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607
Charles Tang
 
Intro to Git 投影片
Intro to Git 投影片Intro to Git 投影片
Intro to Git 投影片
Tony Yeh
 
Github簡介
Github簡介Github簡介
Github簡介
Radian Jheng
 
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
Bachue Zhou
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
flylon
 
Version control0221
Version control0221Version control0221
Version control0221
jianhongciou
 
Android 程式設計(4)
Android 程式設計(4)Android 程式設計(4)
Android 程式設計(4)
Roy Wang
 
Git Essence Tutorial
Git Essence TutorialGit Essence Tutorial
Git Essence Tutorial
Ho Kim
 
Git&Github Tutorial
Git&Github TutorialGit&Github Tutorial
Git&Github Tutorial
Ting Wen Su
 
Learning to Use Git | WeiYuan
Learning to Use Git | WeiYuanLearning to Use Git | WeiYuan
Learning to Use Git | WeiYuan
Wei-Yuan Chang
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
PingLun Liao
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍
medcl
 
Git introduction
Git introductionGit introduction
Git introduction
mythnc
 
GIT實務操作與理論
GIT實務操作與理論GIT實務操作與理論
GIT實務操作與理論
鵬 大
 

Similar to Git & git flow (20)

Learn git
Learn gitLearn git
Learn git
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
 
Github简介及实用入门
Github简介及实用入门Github简介及实用入门
Github简介及实用入门
 
Git Flow 管理
Git Flow 管理Git Flow 管理
Git Flow 管理
 
Git内部培训文档
Git内部培训文档Git内部培训文档
Git内部培训文档
 
Git原理与实战 201607
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607
 
Intro to Git 投影片
Intro to Git 投影片Intro to Git 投影片
Intro to Git 投影片
 
Github簡介
Github簡介Github簡介
Github簡介
 
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
 
Version control0221
Version control0221Version control0221
Version control0221
 
Android 程式設計(4)
Android 程式設計(4)Android 程式設計(4)
Android 程式設計(4)
 
Git Essence Tutorial
Git Essence TutorialGit Essence Tutorial
Git Essence Tutorial
 
Git&Github Tutorial
Git&Github TutorialGit&Github Tutorial
Git&Github Tutorial
 
Learning to Use Git | WeiYuan
Learning to Use Git | WeiYuanLearning to Use Git | WeiYuan
Learning to Use Git | WeiYuan
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍
 
Git教學
Git教學Git教學
Git教學
 
Git introduction
Git introductionGit introduction
Git introduction
 
GIT實務操作與理論
GIT實務操作與理論GIT實務操作與理論
GIT實務操作與理論
 

More from Amo Wu

Microsoft XNA Game Studio 2D 連線動作遊戲
Microsoft XNA Game Studio 2D 連線動作遊戲Microsoft XNA Game Studio 2D 連線動作遊戲
Microsoft XNA Game Studio 2D 連線動作遊戲
Amo Wu
 
物件導向程式設計實習成果報告
物件導向程式設計實習成果報告物件導向程式設計實習成果報告
物件導向程式設計實習成果報告
Amo Wu
 
實務專題競賽報告
實務專題競賽報告實務專題競賽報告
實務專題競賽報告
Amo Wu
 
JavaScript 開發實務分享
JavaScript 開發實務分享JavaScript 開發實務分享
JavaScript 開發實務分享
Amo Wu
 
Productivity tool
Productivity toolProductivity tool
Productivity tool
Amo Wu
 
GuMorning 開發分享
GuMorning 開發分享GuMorning 開發分享
GuMorning 開發分享
Amo Wu
 
Trello
TrelloTrello
Trello
Amo Wu
 

More from Amo Wu (7)

Microsoft XNA Game Studio 2D 連線動作遊戲
Microsoft XNA Game Studio 2D 連線動作遊戲Microsoft XNA Game Studio 2D 連線動作遊戲
Microsoft XNA Game Studio 2D 連線動作遊戲
 
物件導向程式設計實習成果報告
物件導向程式設計實習成果報告物件導向程式設計實習成果報告
物件導向程式設計實習成果報告
 
實務專題競賽報告
實務專題競賽報告實務專題競賽報告
實務專題競賽報告
 
JavaScript 開發實務分享
JavaScript 開發實務分享JavaScript 開發實務分享
JavaScript 開發實務分享
 
Productivity tool
Productivity toolProductivity tool
Productivity tool
 
GuMorning 開發分享
GuMorning 開發分享GuMorning 開發分享
GuMorning 開發分享
 
Trello
TrelloTrello
Trello
 

Git & git flow

Editor's Notes

  1. 將版本分支管理好,讓開發與出版本順利。
  2. 這裡貼一張坂本龍馬的圖 :P
  3. 檔案會遺失、檔案會被別人覆蓋、想復原之前某版本、想知道版本差異、誰改了什麼?為什麼?、程式上線需要分維護版和開發版。
  4. Repository保存程式碼,commity、checkout方便散佈程式碼給團隊,log記錄誰改變什麼、什麼時候、為什麼,branch可因情境分開開發,tag重要里程碑、方便參照。
  5. 易衝突、無法協同作業
  6. Lock Unlock 不方便
  7. CVS、SVN,每個動作都需要網路連線、單點故障麻煩。
  8. 城堡圖
  9. Git、Mercurial,可以蓋世界奇觀了。
  10. 與CVS、Subversion一類的集中式版本控制工具不同,它採用了分布式版本庫的作法,不需要伺服器端軟體,就可以運作版本控制,使得原始碼的釋出和交流極其方便。
  11. git clone <URL>; git init, git remote add origin <URL>
  12. git clone <URL>; git init, git remote add origin <URL>
  13. git clone <URL>; git init, git remote add origin <URL>
  14. git clone <URL>; git init, git remote add origin <URL>
  15. git clone <URL>; git init, git remote add origin <URL>
  16. git clone <URL>; git init, git remote add origin <URL>
  17. git clone <URL>; git init, git remote add origin <URL>
  18. - touch README; git add README; git status; git commit -m ‘Add REAMD’; - working copy/staging area/repository - working tree 亂,包含了想 commit 和不相關的東西,staging area 讓你只放想 commit 的檔案或修改。 - 適當粒度/相關性/獨立性; commit msg,第一行摘要,第二行詳細。
  19. git clone <URL>; git init, git remote add origin <URL>
  20. git clone <URL>; git init, git remote add origin <URL>
  21. git clone <URL>; git init, git remote add origin <URL>
  22. git clone <URL>; git init, git remote add origin <URL>
  23. master develop
  24. Feature/Release/Hotfix