---
# System prepended metadata

title: Git Branch
tags: [IIIEDU期末專題, Git]

---

# Git Branch
小時候大家應該都有通過，農夫掉了一把鐵斧頭🪓到池塘裡，然後池塘出現一位女神問農夫，你掉的是金🪓？還是銀🪓？然後農夫就面臨了2選1的選擇題，但是身為程序猿的我們是不做選擇的，我們可以透過建立分歧點（Branch ）去體驗選金斧頭會怎樣？選銀斧頭回怎樣？而且我們還可以<font size="24" color="red">全都要！！！</font>

### 其實git就是一個可以跨平行宇宙時間機器(但是只能回到過去，及返回到現在，就像<font color="red">復仇者聯盟要去取回寶石的情況</font>)
![](http://e3f49eaa46b57.cdn.sohucs.com/c_pad,w_640,h_360,blur_80/2020/5/3/8/5/MTAwMTM1XzE1ODg0NjQzMzc4OTc=.jpg)
<hr>

故ㄘㄠ事ㄗㄨㄛˋ演ㄌㄧㄡˊ進ㄔㄥˊ，如下

<hr>

農夫(我們)開始準備新<font color="red">ㄓㄨˇ</font>的<font color="red">ㄒㄧㄢˋ</font>工<font color="red">ㄐㄩˋ</font>作<font color="red">ㄑㄧㄥˊ(main)</font>
```shell=1
git init
### 或是
git clone [github_url]
```
路過一個池子<font color="red">(main)</font>
```shell=4
# 下列指令請依作業系統不同使用
touch a.路過一個池子    #unix-like
echo.> a.路過一個池子   #windows
```
b.一不小心，鐵斧頭掉池子裡了<font color="red">(main)</font>
```shell=7
touch b.鐵斧頭掉池子裡了
echo.> b.鐵斧頭掉池子裡了   #windows
```
這時候拿出我們的時光機器Git
並且記錄時間點<font color="red">(main)</font>
```shell=9
git add .
git commit -m "鐵斧頭掉池子裡了"
```
這時候女神從池子裡浮出來，問你是掉金斧頭？還是銀斧頭？

因為我們兩邊的劇情都嘗試看看，所以我們要先建立一個分支<font color="red">(main)</font>
```shell=11
git checkout -b "選金斧頭"
```
記錄時間點<font color="blue">(選金斧頭)</font>
```shell=12
touch c1.選金斧頭
git add .
git commit -m "選金斧頭"
```
拿到金斧頭後，剛好強盜在一旁看到，稍後就把你洗劫一空了<font color="blue">(選金斧頭)</font>
```shell=15
touch d1.被搶劫了
echo.> d1.被搶劫了
#################
git add .
git commit -m "被搶劫了"
```
於是我們就拿出時光機器Git，讓時間返回到被搶之前<font color="blue">(選金斧頭)</font>
```shell=20
git reset XXXX --hard
```
然後發現即使可以時間返回，但仍然找不到方法打贏強盜，那我們就決定選擇拿銀斧頭
(因為Main的時間線還在選斧頭前，所以先回到平行宇宙的時間點)<font color="blue">(選金斧頭)</font>
```shell=21
git checkout main
```
我們要再建立一個選銀斧頭的分支<font color="red">(main)</font>
```shell=22
git checkout -b "選銀斧頭"
touch c2.選銀斧頭
```
記錄時間點<font color="green">(選銀斧頭)</font>
```shell=24
git add .
git commit -m "選銀斧頭"
```
結果遇到小偷，被扒得一乾二凈<font color="green">(選銀斧頭)</font>
```shell=26
touch d2.遇到小偷
echo.> d2.遇到小偷
###################
git add .
git commit -m "遇到小偷"
```
心情不美麗的我們，只好又拿出時光機．．．<font color="green">(選銀斧頭)</font>
```shell=31
git reset XXXX --hard
```
似乎怎麼選都不好，回到鐵斧掉水池的main線<font color="green">(選銀斧頭)</font>
```shell=32
git checkout main
```
結果女神因為你誠實的告訴是掉鐵斧頭，所以女神就就幫你排除了強盜及小偷<font color="red">(main)</font>
```shell=33
touch c3.選鐵斧
echo.> c3.選鐵斧
##################
git add .
git commit -m "選鐵斧"
```
有時光機怎麼可能滿足於此？於是我們就把平行世界的金銀斧頭都拿過來了！！！
```shell=38
git merge "選銀斧頭"
git merge "選金斧頭"
```


簡單來說，就像是遊戲的存檔/讀檔機制，但是Git可以把不同存檔的東西給合併
故事大概就是這樣了，操作的過程當中，留意一下資料夾檔案的變化，會比較好瞭解git的操作喔～～


###### tags: `IIIEDU期末專題` `Git`