C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
2
甚麼是版本控制? 能吃嗎?
!
!
在講版本控制以前,
對以下情況應該會有種似曾相識的感覺
Slide 3
Slide 3 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
3
貫徹始終
❑ xx_hwk4.c //20131026
Slide 4
Slide 4 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
4
貫徹始終
❑ xx_hwk4.c //20131026
❑ xx_hwk4.c //20131027
Slide 5
Slide 5 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
5
貫徹始終
❑ xx_hwk4.c //20131026
❑ xx_hwk4.c //20131027
.
.
.
❑ xx_hwk4.c //20131127
Slide 6
Slide 6 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
6
貫徹始終
❑ xx_hwk4.c //20131026
❑ xx_hwk4.c //20131027
.
.
.
❑ xx_hwk4.c //20131127
啊…改壞了,上個還可以work的版本…
Slide 7
Slide 7 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
7
貫徹始終
❑ xx_hwk4.c //20131026
❑ xx_hwk4.c //20131027
.
.
.
❑ xx_hwk4.c //20131127
啊…改壞了,上個還可以work的版本…
Slide 8
Slide 8 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
8
你是這樣命名的嗎?
❑ xx_hwk4.c(1)
Slide 9
Slide 9 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
9
你是這樣命名的嗎?
❑ xx_hwk4.c(1)
❑ xx_hwk4.c(2)
Slide 10
Slide 10 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
10
你是這樣命名的嗎?
❑ xx_hwk4.c(1)
❑ xx_hwk4.c(2)
.
.
.
❑ xx_hwk4.c(最終版)
Slide 11
Slide 11 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
11
你是這樣命名的嗎?
❑ xx_hwk4.c(1)
❑ xx_hwk4.c(2)
.
.
.
❑ xx_hwk4.c(最終版)
❑ xx_hwk4.c(這才是最終版)
Slide 12
Slide 12 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
12
你是這樣命名的嗎?
❑ xx_hwk4.c(1)
❑ xx_hwk4.c(2)
.
.
.
❑ xx_hwk4.c(最終版)
❑ xx_hwk4.c(這才是最終版)
❑ xx_hwk4.c(最終的最終版)
Slide 13
Slide 13 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
13
你是這樣命名的嗎?
❑ xx_hwk4.c(1)
❑ xx_hwk4.c(2)
.
.
.
❑ xx_hwk4.c(最終版)
❑ xx_hwk4.c(這才是最終版)
❑ xx_hwk4.c(最終的最終版)
❑ xx_hwk4.c(最最最最終版)
Slide 14
Slide 14 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
14
你是這樣命名的嗎?
❑ xx_hwk4.c(1)
❑ xx_hwk4.c(2)
.
.
.
❑ xx_hwk4.c(最終版)
❑ xx_hwk4.c(這才是最終版)
❑ xx_hwk4.c(最終的最終版)
❑ xx_hwk4.c(最最最最終版)
❑ xx_hwk4.c(不要懷疑 交這個就對了)
Slide 15
Slide 15 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
15
你是這樣命名的嗎?
❑ xx_hwk4.c(1)
❑ xx_hwk4.c(2)
.
.
.
❑ xx_hwk4.c(最終版)
❑ xx_hwk4.c(這才是最終版)
❑ xx_hwk4.c(最終的最終版)
❑ xx_hwk4.c(最最最最終版)
❑ xx_hwk4.c(不要懷疑 交這個就對了)
Slide 16
Slide 16 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
16
還是這樣?
❑ xx_hwk4_20131126_v1.c
❑ xx_hwk4_20131127_v2.c
.
.
.
v1
……
!
v2
……
README
Slide 17
Slide 17 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
17
如果有很多⼈人⼀一起合作…
❑ AAA_xx_hwk4_20131126_v1.c
❑ BBB_xx_hwk4_20131127_v2.c
.
.
.
Slide 18
Slide 18 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
18
我在改 XXYY 功能,不要動!!!
Slide 19
Slide 19 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
19
我在改 XXYY 功能,不要動!!!
Slide 20
Slide 20 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
20
我在改 XXYY 功能,不要動!!!
Slide 21
Slide 21 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
21
跟別⼈人合併就是悲劇的開始
❑ 我在我的電腦可以跑的阿!
❑ 昨天還好好的!
❑ 你⼀一定弄錯版本了!
❑ 這BUG我修了阿!
❑ 你到底做了甚麼才讓程式出錯?
Slide 22
Slide 22 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
22
版本控制
就像遊戲存檔⼀一樣,打不贏boss、忘了拿寶,!
可以回到前⾯面的存檔重練。!
❑ 良好的開發歷程記錄!
❑ 統⼀一管制、衝突管理!
❑ ⾃自動化應⽤用
Slide 23
Slide 23 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
23
版本控制
❑ Local Version Control
Slide 24
Slide 24 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
24
版本控制
❑ Centralized Version Control
• SVN
Slide 25
Slide 25 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
25
版本控制
❑ Centralized Version Control
• SVN
Slide 26
Slide 26 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
26
版本控制
❑ Distributed Version Control
• Git
Slide 27
Slide 27 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
27
Git
❑ Setup
• git clone
1. Update
• git pull
2. Coding
• git status
• git add
• git commit
3. Push
• git push
!
❑ http://try.github.io/levels/1/challenges/1
Local Remote
git status
Slide 28
Slide 28 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
28
Other Services
❑ Github
❑ Bitbucket
Slide 29
Slide 29 text
C
o
m
pu
ter
C
en
ter
,
C
S,
N
C
T
U
29
References
❑ http://tech.marsw.tw/blog/2013/08/16/git-notes-github
!
❑ learnGitBranching
http://pcottle.github.io/learnGitBranching