iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 1
2
Software Development

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

Day 01 - 關於「用樂高玩轉 GIT 版本控制」緣起

  • 分享至 

  • xImage
  •  

版本控制系統的重要性在現今的軟體開發專案中,已經是不可缺少的重要環節,而選用 GIT 作為版本控制系統的比例不在少數。

自己及團隊使用 GIT 作專案的版本控制工具已有幾年的經驗,也曾經協助團隊從無到有導入,在這些與團隊夥伴協作專案的經歷中,也會遇到夥伴詢問操作上的問題,久而久之便累積了一些教學上的經驗。

這些經驗中,其中有一部分屬於基礎操作沒問題,懂得使用 add、commit、pull、push 指令,但在遇到相對複雜的情境,如遇到版本控制的衝突解決、分支的建立合併時、只有 CLI (Command-Line Interface) 而沒有 GUI (Graphical User Interface) 可以使用時,就嚇的吃手手,進入不知道該怎麼處理的窘境。這些狀況,在討論後發現,原因常常是在學習初期對於 GIT 底層的原理知識知其然而不知其所以然,不夠熟悉每個指令的背後發生了什麼事情所致。

因此,我想將自身累積的相關經驗,嘗試透過樂高積木製作的過程說明來描述 GIT 版本控制,用不一樣的角度,讓更多 GIT 使用者更容易了解指令的底層,進而不再害怕面對較複雜的情境。

全系列架構

這系列「用樂高玩轉 GIT 版本控制」文章,預計將包含但不限於以下的部分:

  1. 為什麼是樂高與 GIT
  2. GIT 的本地操作指令
    1. Add、Commit
    2. Branch
    3. Merge
    4. Reset
    5. Revert
    6. Rebase
  3. GIT 與遠端互動的指令
    1. Fetch
    2. Pull
    3. Push
  4. GIT 的使用與團隊協作開發
    1. 各種團隊合作上可能需要注意的細節
    2. gitflow 流程

使用「包含但不限於」是因為,這次的開賽,是男子漢的挑戰,有那麼一點莽撞,沒有任何的庫存稿,也因此還沒完賽前,寫作上有很大的彈性,要寫些什麼都還很可以討論,因此持續的調整修改架構也是必要的,當然,也可能會根據留言回饋做一些調整,整體的目的就是想發大財實驗看看,用不一樣的描述方式,是不是真的可以幫助一些讀者,真的更容易而仔細的認識 GIT 這好工具。

在開始寫第一篇之前

在正式開始之前,如果對於我過去對於 GIT 的介紹簡報有興趣,歡迎參考以下的幾個連結,所有的簡報都有附上當時的錄影紀錄:

  1. Laradebut #02 版本控制管理與操作 以 git 為例 - Speaker Deck
    這份是初出茅蘆第一次在公開場合介紹 GIT 使用的簡報,這份簡報著重於剛開始接觸 GIT 就會用到的指令介紹。影片中可以看到對於指令與 GIT 各個操作區域的關聯都做了動畫,適合剛接觸到 GIT 的使用者看
  2. Laradebut #03 從 git 入門到團隊合作開發 - Speaker Deck
    這篇是著重於 GIT 入門指令一直到團隊合作操作的簡報,在這份簡報中除了入門指令外的講解外,也在影片的後段增加了兩人同步實際案例現場 Live Demo 操作演示,適合剛開始要跟團隊一同合作的使用者觀看
  3. GIT從入門到應用-線上讀書會 - Speaker Deck
    這份簡報,是線上讀書會社團合作的內容,當天除基礎指令介紹外,特別針對實務上在有 GIT 版本控制的環境對於「找到哪個時間點出錯」這件事情,做了使用 bisect 指令 Debug 的介紹。
  4. 20190323 ThreeGitTips-台日技術社群交流會 - Speaker Deck
    已經熟悉 GIT 指令了,但有一些特別的指令你可能還不知道,如可以協助快速找到錯誤點 commit 的 bisect、幫助記住解決衝突的方法的 rerere、快速在同一個 repo 中建立或取得不同的 branch 進行檔案修改,在這一份簡報中,都有提供範例及說明。

以上是我目前對於 GIT 的相關簡報與錄影。如果有興趣,有想要討論的內容,也都可以透過留言讓我知道。歡迎明天一起進入 Day 01 - 為什麼是樂高與 GIT 呢?


下一篇
Day 02 - 為什麼是樂高與 GIT
系列文
用樂高玩轉 GIT 版本控制30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
UD_fish
iT邦新手 5 級 ‧ 2019-09-18 00:57:34

很期待您這系列的文章!(忠實讀者)

墨嗓 iT邦研究生 3 級 ‧ 2019-09-18 01:32:36 檢舉

一起加油唷!

UD_fish iT邦新手 5 級 ‧ 2019-09-19 00:15:24 檢舉

好唷!XD

0
阿瑜
iT邦研究生 3 級 ‧ 2019-10-12 01:12:03

如果 今天看完一系列文 ,希望可以 從單機模式 變成 多人模式。
現在 我是只會一些基礎指令

  • 初始化 一個 repo. // 從Github 複製一開始創建庫給的指令
  • git add .
  • git commit -m "註解內容"
  • git pull
  • git push

  • 開分支
  • git clone "http(s)..."

單機模式 就是 每個程式碼都自己寫,不是協作的那種
之後 如果處理的規模 一大,感覺一定會碰到 如何多人進行同一份的專案版本控制

麻煩大哥了 !!!

墨嗓 iT邦研究生 3 級 ‧ 2019-10-12 10:21:57 檢舉

這系列的規劃,直到 Day 18 才開始與遠端的共用儲存庫有互動,而後才開始提 fetch, push 等指令,目的就是為了,等待本機的指令真的夠了解之後,才開始面對遠端的使用,因為基礎原理是一樣的。

所以我會認為當開始多人協作之後,只要把原則維持好,基本上使用會是一樣的。當然多人使用上,會開始有一些「流程」方便團隊作測試、驗證、正式版本釋出,這些會在最後的幾篇提到。

希望這系列對你有幫助。

阿瑜 iT邦研究生 3 級 ‧ 2019-10-12 22:00:35 檢舉

/images/emoticon/emoticon42.gif

我要留言

立即登入留言