Git & git flow

Amo Wu
Amo WuFront-End Engineer
Git & Git flow
從小木屋到世界奇觀
Agenda
• VCS
• Git
• Git Flow
VCS Version Control System
版本控制系統
為什麼需要版本控制?
為什麼需要版本控制?
• 檔案被別人或自己覆蓋、甚至遺失
為什麼需要版本控制?
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
為什麼需要版本控制?
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
• 想知道跟前幾天寫的差異在哪裏
為什麼需要版本控制?
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
• 想知道跟前幾天寫的差異在哪裏
• 誰改了這行程式碼?為什麼?
為什麼需要版本控制?
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
• 想知道跟前幾天寫的差異在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天寫的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
可以隨時復原修改,回到之前的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
可以隨時復原修改,回到之前的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
可以隨時復原修改,回到之前的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
保留修改歷史記錄,以供查詢
• 程式上線後,需要分成維護版和開發版
所以我們需要一些機制
• 檔案被別人或自己覆蓋、甚至遺失
多人協作,不會把別人的東西蓋掉
• 想復原前幾天寫的版本
可以隨時復原修改,回到之前的版本
• 想知道前幾天寫的差在哪裏
• 誰改了這行程式碼?為什麼?
保留修改歷史記錄,以供查詢
• 程式上線後,需要分成維護版和開發版
所以 VCS 就誕生了
\\٩( 'ω' )‫و‬ ////
VCS的歷史
黑暗時代
Local VCS 資料夾管理法
Git & git flow
Git & git flow
Git & git flow
Git & git flow
Git & git flow
Git & git flow
COPY
Git & git flow
Git & git flow
Git & git flow
Git & git flow
Git & git flow
Git & git flow
Git & git flow
Git & git flow
Git & git flow
封建時代
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 大陸
Git & git flow
城堡時代
Centralized VCS (Merge Ver.)
Server 大陸
Server 大陸
Ceckout
Server 大陸
Commit
Server 大陸
Commit
Server 大陸
Merge
Server 大陸
Server 大陸
Server 大陸
Commit
Server 大陸
Conflict
Git & git flow
但是...
Server 大陸
Server 大陸
Server 大陸
Commit
Server 大陸
Server 大陸
Server 大陸
Server 大陸
Git & git flow
Git & git flow
Git & git flow
帝王時代
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 大陸
Git & git flow
Commit Commit
Git & git flow
Git
簡介
Git & git flow
Linus Torvalds Linux之父
Linux Kernel
Open Source
Distribute VCS
所有內容都在本地端
開分支成本低
快
省空間
Git & git flow
Git
基本操作
Server 大陸
Server 大陸
Origin / Remote
Server 大陸
Origin / Remote
Repository
Server 大陸
Working Copy
Server 大陸
Server 大陸
$ git clone <URL>
Server 大陸
Git & git flow
$ git checkout <branch>
Git & git flow
Commit
Git & git flow
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 & git flow
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 & git flow
Git & git flow
$ 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
Git & git flow
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
1 of 219

Recommended

Git flow by
Git flowGit flow
Git flowshaokun
1.3K views18 slides
Git and git hub by
Git and git hubGit and git hub
Git and git hub唯 李
2.8K views66 slides
A successful git branching model 導讀 by
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀Wen Liao
2.1K views20 slides
開發用不著打一架 - 分散式版本控制 Git by
開發用不著打一架 - 分散式版本控制 Git開發用不著打一架 - 分散式版本控制 Git
開發用不著打一架 - 分散式版本控制 GitCalvin Huang
863 views33 slides
git merge 與 rebase 的觀念與實務應用 by
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用Will Huang
20.7K views19 slides
git, repo, Gerrit 基礎教學 by
git, repo, Gerrit 基礎教學git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學Doremi Lin
18.4K views22 slides

More Related Content

What's hot

Git 經驗分享 by
Git 經驗分享Git 經驗分享
Git 經驗分享Mu Chun Wang
3.9K views246 slides
寫給大家的 Git 教學 by
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學littlebtc
212.3K views66 slides
Git與source tree 基礎教學 by
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學Duncan Chen
13.7K views22 slides
Git tutorial for windows user (給 Windows user 的 Git 教學) by
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
9.6K views107 slides
Introduction to git by
Introduction to gitIntroduction to git
Introduction to gitBo-Yi Wu
19.5K views57 slides
Xcode 的 git 版本管理 by
Xcode 的 git 版本管理Xcode 的 git 版本管理
Xcode 的 git 版本管理彼得潘 Pan
3.3K views22 slides

What's hot(20)

寫給大家的 Git 教學 by littlebtc
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc212.3K views
Git與source tree 基礎教學 by Duncan Chen
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學
Duncan Chen13.7K views
Git tutorial for windows user (給 Windows user 的 Git 教學) by Cloud Tu
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 Tu9.6K views
Introduction to git by Bo-Yi Wu
Introduction to gitIntroduction to git
Introduction to git
Bo-Yi Wu19.5K views
Xcode 的 git 版本管理 by 彼得潘 Pan
Xcode 的 git 版本管理Xcode 的 git 版本管理
Xcode 的 git 版本管理
彼得潘 Pan3.3K views
工程師必備第一工具 - Git by Alan Tsai
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
Alan Tsai82.9K views
Visual Studio 2015 與 Git 開發實戰 by Will Huang
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
Will Huang15.7K views
Git基礎介紹 by Max Ma
Git基礎介紹Git基礎介紹
Git基礎介紹
Max Ma1K views
如何與 Git 優雅地在樹上唱歌 by Mu Chun Wang
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
Mu Chun Wang4.5K views
電子內容管理 使用Git 與 github 1 by Alan Tsai
電子內容管理   使用Git 與 github 1電子內容管理   使用Git 與 github 1
電子內容管理 使用Git 與 github 1
Alan Tsai2.8K views
Use Git-flow Manage Your Git Workflow by Liangjun Jiang
Use Git-flow Manage Your Git WorkflowUse Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git Workflow
Liangjun Jiang94 views
Git in a nutshell by Nelson Tai
Git in a nutshellGit in a nutshell
Git in a nutshell
Nelson Tai10K views
版本控制 使用Git & git hub by 維佋 唐
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
維佋 唐6.2K views
Git 入门实战 by icy leaf
Git 入门实战Git 入门实战
Git 入门实战
icy leaf2.6K views
Git share by mactanxin
Git shareGit share
Git share
mactanxin363 views
Git and Github basic with SourceTree by Chu-Siang Lai
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
Chu-Siang Lai7.4K views
Git 入門與實作 by 奕浦 郭
Git 入門與實作Git 入門與實作
Git 入門與實作
奕浦 郭1.9K views

Viewers also liked

Get Familiar With Git by
Get Familiar With Git Get Familiar With Git
Get Familiar With Git Nigam Goyal
417 views19 slides
Introduction to Ruby by
Introduction to RubyIntroduction to Ruby
Introduction to RubyRanjith Siji
2.5K views38 slides
Git training by
Git trainingGit training
Git trainingadm_exoplatform
4.1K views37 slides
Ruby Basics by
Ruby BasicsRuby Basics
Ruby BasicsSHC
8.9K views74 slides
The Ruby Programming Language: Or, Why are you wasting brain power? by
The Ruby Programming Language: Or, Why are you wasting brain power?The Ruby Programming Language: Or, Why are you wasting brain power?
The Ruby Programming Language: Or, Why are you wasting brain power?Vishnu Gopal
12.1K views51 slides
Git branching-model by
Git branching-modelGit branching-model
Git branching-modelAaron Huang
5K views32 slides

Viewers also liked(9)

Get Familiar With Git by Nigam Goyal
Get Familiar With Git Get Familiar With Git
Get Familiar With Git
Nigam Goyal417 views
Introduction to Ruby by Ranjith Siji
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
Ranjith Siji2.5K views
Ruby Basics by SHC
Ruby BasicsRuby Basics
Ruby Basics
SHC8.9K views
The Ruby Programming Language: Or, Why are you wasting brain power? by Vishnu Gopal
The Ruby Programming Language: Or, Why are you wasting brain power?The Ruby Programming Language: Or, Why are you wasting brain power?
The Ruby Programming Language: Or, Why are you wasting brain power?
Vishnu Gopal12.1K views
Git branching-model by Aaron Huang
Git branching-modelGit branching-model
Git branching-model
Aaron Huang5K views
Getting Git Right by Sven Peters
Getting Git RightGetting Git Right
Getting Git Right
Sven Peters152.2K views

Similar to Git & git flow

Learn git by
Learn gitLearn git
Learn git甘 李
1.1K views36 slides
Git 版本控制系統 -- 從微觀到宏觀 by
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Wen-Tien Chang
23.6K views109 slides
Github简介及实用入门 by
Github简介及实用入门Github简介及实用入门
Github简介及实用入门Rongxing Liu
302 views55 slides
Git Flow 管理 by
Git Flow 管理Git Flow 管理
Git Flow 管理Pu Lee
310 views14 slides
Git内部培训文档 by
Git内部培训文档Git内部培训文档
Git内部培训文档superwen
1.3K views32 slides
Git原理与实战 201607 by
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607Charles Tang
148 views29 slides

Similar to Git & git flow(20)

Learn git by 甘 李
Learn gitLearn git
Learn git
甘 李1.1K views
Git 版本控制系統 -- 從微觀到宏觀 by Wen-Tien Chang
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
Wen-Tien Chang23.6K views
Github简介及实用入门 by Rongxing Liu
Github简介及实用入门Github简介及实用入门
Github简介及实用入门
Rongxing Liu302 views
Git Flow 管理 by Pu Lee
Git Flow 管理Git Flow 管理
Git Flow 管理
Pu Lee310 views
Git内部培训文档 by superwen
Git内部培训文档Git内部培训文档
Git内部培训文档
superwen1.3K views
Git原理与实战 201607 by Charles Tang
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607
Charles Tang148 views
Intro to Git 投影片 by Tony Yeh
Intro to Git 投影片Intro to Git 投影片
Intro to Git 投影片
Tony Yeh181 views
COSCUP 2015 開源之道-Git工作坊教學簡報 by Bachue Zhou
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
Bachue Zhou656 views
Git 超簡單學習懶人包(軟體程式版本控管系統) by flylon
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
flylon375 views
Android 程式設計(4) by Roy Wang
Android 程式設計(4)Android 程式設計(4)
Android 程式設計(4)
Roy Wang200 views
Git Essence Tutorial by Ho Kim
Git Essence TutorialGit Essence Tutorial
Git Essence Tutorial
Ho Kim1.3K views
Git&Github Tutorial by Ting Wen Su
Git&Github TutorialGit&Github Tutorial
Git&Github Tutorial
Ting Wen Su328 views
Learning to Use Git | WeiYuan by Wei-Yuan Chang
Learning to Use Git | WeiYuanLearning to Use Git | WeiYuan
Learning to Use Git | WeiYuan
Wei-Yuan Chang188 views
Git 程式碼版本控制軟體介紹 by PingLun Liao
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
PingLun Liao426 views
Git 使用介绍 by medcl
Git 使用介绍Git 使用介绍
Git 使用介绍
medcl1.1K views
Git教學 by Sitg Yao
Git教學Git教學
Git教學
Sitg Yao603 views
Git introduction by mythnc
Git introductionGit introduction
Git introduction
mythnc243 views
GIT實務操作與理論 by 鵬 大
GIT實務操作與理論GIT實務操作與理論
GIT實務操作與理論
鵬 大54 views

More from Amo Wu

Microsoft XNA Game Studio 2D 連線動作遊戲 by
Microsoft XNA Game Studio 2D 連線動作遊戲Microsoft XNA Game Studio 2D 連線動作遊戲
Microsoft XNA Game Studio 2D 連線動作遊戲Amo Wu
431 views7 slides
物件導向程式設計實習成果報告 by
物件導向程式設計實習成果報告物件導向程式設計實習成果報告
物件導向程式設計實習成果報告Amo Wu
622 views82 slides
實務專題競賽報告 by
實務專題競賽報告實務專題競賽報告
實務專題競賽報告Amo Wu
551 views25 slides
JavaScript 開發實務分享 by
JavaScript 開發實務分享JavaScript 開發實務分享
JavaScript 開發實務分享Amo Wu
340 views116 slides
Productivity tool by
Productivity toolProductivity tool
Productivity toolAmo Wu
182 views39 slides
GuMorning 開發分享 by
GuMorning 開發分享GuMorning 開發分享
GuMorning 開發分享Amo Wu
259 views18 slides

More from Amo Wu(7)

Microsoft XNA Game Studio 2D 連線動作遊戲 by Amo Wu
Microsoft XNA Game Studio 2D 連線動作遊戲Microsoft XNA Game Studio 2D 連線動作遊戲
Microsoft XNA Game Studio 2D 連線動作遊戲
Amo Wu431 views
物件導向程式設計實習成果報告 by Amo Wu
物件導向程式設計實習成果報告物件導向程式設計實習成果報告
物件導向程式設計實習成果報告
Amo Wu622 views
實務專題競賽報告 by Amo Wu
實務專題競賽報告實務專題競賽報告
實務專題競賽報告
Amo Wu551 views
JavaScript 開發實務分享 by Amo Wu
JavaScript 開發實務分享JavaScript 開發實務分享
JavaScript 開發實務分享
Amo Wu340 views
Productivity tool by Amo Wu
Productivity toolProductivity tool
Productivity tool
Amo Wu182 views
GuMorning 開發分享 by Amo Wu
GuMorning 開發分享GuMorning 開發分享
GuMorning 開發分享
Amo Wu259 views
Trello by Amo Wu
TrelloTrello
Trello
Amo Wu1.8K views

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