Git Example

開篇

簡單的示範一下使用Git 的例子

例子將模擬二個2位員工的分工和合併

2位員工將會在各自的branch 加入新的file 和同時更改一個共用的file

就如日常中二個人合作寫project的情況

例子將用.swift 的文件示範

不要使用 apple rich text 會出現merge 的問題

正文

首先開一個folder

在里面加入一個config.swift

然後在config.swift寫入

1
let SettingCommon = "Common"

再打開terminal cd 到folder 的位置 輸入

1
git init

成功會出現

1
Initialized empty Git repository in folder 的位置

然後繼續在terminal 輸入

1
2
git add .
git commit -m "git init"

成功會出現

1
2
3
[master (root-commit) 9ed71be] git init
1 file changed, 8 insertions(+)
create mode 100644 config.swift

然後開二個branch 模擬二人合作的情況 在terminal 輸入

1
2
git branch user1
git branch user2

切換到user1 branch 模擬user 1 工作 在terminal 輸入

1
git checkout user1

成功會出現

1
Switched to branch 'user1'

然後在config.swift加入一行

1
2
let SettingCommon = "Common"
let SettingOne = "one" <-- 加入的一行

加入一個func1.swift

在func1.swift寫入

1
let func1 = "func1"

然後在terminal 輸入

1
2
git add .
git commit -m "user1 init"

再切換到user2 branch 模擬user 2 工作 在terminal 輸入

1
git checkout user2

成功會出現

1
Switched to branch 'user2'

然後在config.swift加入一行

1
2
let SettingCommon = "Common"
let SettingTwo = "two" <-- 加入的一行

加入一個func2.swift

在func2.swift寫入

1
let func2 = "func2"

然後在terminal 輸入

1
2
git add .
git commit -m "user2 init"

回到master branch 準備merge
在terminal 輸入

1
git checkout master

成功會出現

1
Switched to branch 'master'

在terminal 輸入

1
git merge user1

成功會出現

1
2
3
4
5
6
Updating 9ed71be..8df35f6
Fast-forward
config.swift | 1 +
func1.swift | 8 ++++++++
2 files changed, 9 insertions(+)
create mode 100644 func1.swift

再merge user2在terminal 輸入

1
git merge user2

成功會出現

1
2
3
Auto-merging config.swift
CONFLICT (content): Merge conflict in config.swift
Automatic merge failed; fix conflicts and then commit the result.

打開config.swift 會看見

1
2
3
4
5
6
let SettingCommon = "Common"
<<<<<<< HEAD
let SettingOne = "one"
=======
let SettingTwo = "two"
>>>>>>> user2

把以下的三行刪掉

1
2
3
<<<<<<< HEAD
=======
>>>>>>> user2

文件將變成

1
2
3
let SettingCommon = "Common"
let SettingOne = "one"
let SettingTwo = "two"

回到terminal 輸入

1
2
git add .
git commit -m "merge two func"

成功會出現

1
[master 119ec7e] merge two func

完成 灑花

結尾

下篇 Git 將在 Xcode 的 project 中示範使用 Git

*唠騷* *棄我去者 昨日之日不可留 亂我心者 今日之日多煩憂 四方八面各式各樣的煩悶揮之不去 身體健康出現問題 西醫看不好 中藥飲不少 略有好轉 只能說革命尚未成功 同志仍需努力 *