iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0

今天開始來撰寫我們的 function,不過在那之前,想一併介紹 git 的另外兩項功能 branch 以及 checkout。知道這兩項指令,對以後不管是 Open Source 的開發,或是在工作上的開發都十分有幫助。

Git Branch

不知道大家還記不記得,我在前幾天有介紹 Git 的概念的時候,有提到的 分支,今天介紹的 branch 指令,就是要來完成分支的工作,可以回去之前的文章複習一下:Day 07 - Git 介紹

回到我們本地端的資料夾,可以看到我有一個 main 的顯示,這個代表我現在在 main 這個 branch。我們去 Repo 頁的 branch 選擇也可以看到,在打勾的地方是 main。通常這會是我們預設的 root branch 就等於最主要的主枝幹。
https://ithelp.ithome.com.tw/upload/images/20241001/20163024LLtVyvIe1X.png

我們在開發的時候,不會希望都在主枝幹上有所更改,都會希望以另開分支(branch)的方式來開發新的程式碼,等確定開發完畢後,再合併回主枝幹。這樣的好處有幾點,在分支的改動不會影響到 main,所以可以盡情修改。另外如果之後在合併後發生問題,我們也能透過 Revert 的方式,把整個分支的改動還原。

我們會使用 git branch {分支名} 來新增新的 branch,例如:

git branch feature/statcast-fns

分支的命名跟之前介紹的 commit 命名一樣,也是建議有一個規定好的命名方式,給之後一起開發的人有個參考依據,也能透過好的命名,來快速知道該分支有完成哪些作用或功能。我自己是習慣以 {分支類別}/{分支標題簡述} 的形式命名,然後分支的簡述會用 - 來斷詞,如果敘述太長。類別通常會有幾種:

  • feature:新功能、新設計會使用這個類別
  • fixbugfix:修改 bugs 或是內容修正會使用
  • refactor:程式碼重構,架構重構等會使用
  • enhancement:程式碼或系統套件改良會使用,其實跟 refactor 滿像的,也可以擇一就好
  • testexperimental:測試時使用的類別

大概簡單分成這幾種,不過一樣沒有硬性規定,也是團隊內部制定好就好,至於後面的簡述部分,有時候會附上需解決的單字號碼,或是 Issues 的 id,這個也是講好就好。

Git Checkout

在我們執行 git branch {分支名} 後,會發現我們還是在 main 這邊,我們可以單獨輸入 git branch 來看我們的分支有沒有創建成功。想要移動到新產生的 branch 的話,就會需要使用到 git checkout {分支名} 前往,以剛剛的例子為範例,就需要執行:

git checkout feature/statcast-fns

執行完畢後就會發現原本的 main 會移動到新的 feature/statcast-fns 上了
https://ithelp.ithome.com.tw/upload/images/20241001/201630241N4P4StcNl.png

我們也可以隨時切換回其他分支,一樣使用 git checkout {分支名} 就好。

其他指令延伸

再介紹一些我平常會使用的相關指令:

branch 改名

如果發現自己的命名想修正的話,可以使用 -m 來修改

git branch -m {舊名字} {新名字}

branch 刪除

想要刪除分支的話可以使用大寫 -D 來刪除,這邊提醒,無法刪除當下所在的分支,需要用 checkout 到另外一個再進行刪除

git branch -D {分支名}

checkout 新增分支

可以在 checkout 指令的後面使用 -b,這樣就會在產生新的分支後,馬上幫你切換到該分支,就不用先 git branchgit checkout 了。另外提醒,branch 的名稱不能重複,都需要是獨特的一串文字才行。

https://ithelp.ithome.com.tw/upload/images/20241001/20163024zRfl3Ivgh5.png

本日小結

今天介紹了一下如何新增分支來幫助開發,真的是很實用的功能,可以多複習。文章中也提供官方文件,也可以多去試試他們的一些小指令。明天開始就會從 feature/statcast-fns 這個分支開始進行我們 functions 的開發,還敬請期待。
一樣最後感謝大家耐心地看完這次的文章,有任何問題與建議一樣歡迎大家留言,明天見,掰掰。


上一篇
Day 16 - Statcast Search Filters Part 2
下一篇
Day 18 - 用 requests 取得 Raw Data 後使用 pandas 轉成 DataFrame
系列文
上次介紹的棒球套件很少更新了,那就只好自己寫一個!?31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言