iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
Software Development

用樂高玩轉 GIT 版本控制 系列

自己及團隊使用 GIT 作專案的版本控制工具已有幾年的經驗,也曾經協助一些團隊從無到有導入,這些經歷中偶爾就會遇到夥伴懂得使用 add、commit、pull、push 指令,但真的遇到相對複雜的情境,如程式碼解衝突、分支的建立合併時,卻不知道該怎麼處理的窘境。在討論後發現,原因常常是在學習初期對於 GIT 底層的原理知其然而不知其所以然,不夠熟悉每個指令的背後發生了什麼事情所致。因此,我想將自身累積的相關經驗,透過樂高積木製作的過程說明來描述 GIT 版本控制,用不一樣的角度,讓更多 GIT 使用者更容易了解指令的底層,進而不再害怕面對較複雜的情境。

鐵人鍊成 | 共 30 篇文章 | 80 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11 - 切換 branch 與 還原目前工作區檔案:git checkout, restore, switch

今天的內容硬要跟樂高有關連,我大概會這樣說,當我們編輯樂高製作手冊,編輯到一半,還沒正式寫進手冊裡,但,我不想要目前編輯到一半的內容了,我該怎麼辦?但,我想不到...

2019-09-27 ‧ 由 墨嗓 分享
DAY 12

Day 12 - 你手冊新增的部分不錯,我們合作吧!分支合體技 git merge

還記得 Day 08 的樂高案例劇情嗎?當有人將一個樂高手冊的基礎版本,分享出來,有兩個網友同時基於這個基礎版本,各自實作自己的手冊。現在 A 網友發現 B 網...

2019-09-28 ‧ 由 墨嗓 分享
DAY 13

Day 13 - 你的就是我的 再談 git merge

在上一篇的內容中,提到了 Merge 其實就是在合併的點上,把與本身不一樣的地方,實作一次,做成動畫大概類似底下的圖示: 而如果自己完全還沒有任何變更,只有預...

2019-09-29 ‧ 由 墨嗓 分享
DAY 14

Day 14 - 換個起點再來一次 談 git rebase

今天來談 git rebase,這是一個對於剛開始學 GIT 的人,常常覺得有點混亂複雜的指令,他究竟在做什麼呢?今天的一開始,我們先用樂高手冊組裝來舉個例子:...

2019-09-30 ‧ 由 墨嗓 分享
DAY 15

Day 15 - 你那招很厲害,我不要一整套,可以只要一招嗎?git cherry-pick

在樂高手冊上,如 Day 14 上的內容,如果劇情變更成,A 版作者覺得 B 版作者的「步驟 1 (B1):變更內容,在橫條基板右上角放上一格綠色樂高」很好很...

2019-10-01 ‧ 由 墨嗓 分享
DAY 16

Day 16 - 把製作步驟歷程整理好讓人更好理解,談 git rebase -i 互動模式

在 Day 14 的內容中,提到 git rebase 的概念是「把 commit 所代表的步驟,試著在新的基點再做一次」,而正因為,每一個 commit,紀錄...

2019-10-02 ‧ 由 墨嗓 分享
DAY 17

Day 17 - 能在一起無憂無慮多幸運,談 GIT 解衝突

之前的幾篇,談了 GIT 的 merge、rebase 及 cherry-pick提到的例子因為有先做過設計,所以合併或移動通常都會很順利,但實務中當共同使用儲...

2019-10-03 ‧ 由 墨嗓 分享
DAY 18

Day 18 - 讓我們一起來,談把儲存庫發佈到網路上 Push Remote

之前的幾天,談了許多在本地儲存庫的操作,一直都還沒提到該怎麼與其他人一同共用儲存庫,今天的主題會以發布到網路上為軸心,跟大家介紹關於把 GIT 儲存庫發佈到網路...

2019-10-04 ‧ 由 墨嗓 分享
DAY 19

Day 19 - 與共同儲存中心開始溝通 談 git push 與 git fetch

在 Day 18 的內容中,提到了可以使用 git push 指令把本地的儲存庫發送到共同的儲存庫中心,那麼共用儲存庫與本地儲存庫之間要怎麼溝通呢? 這個所謂的...

2019-10-05 ‧ 由 墨嗓 分享
DAY 20

Day 20 - 與中心溝通出現障礙 繼續談 git push, fetch, pull

在 Day 19 的時候,我們提到可以使用 git push 及 git fetch 兩個指令把本地的 GIT 儲存庫狀態物件與遠端的共用儲存庫做 GIT 的物...

2019-10-06 ‧ 由 墨嗓 分享