新手全端工程師的職場成長歷程 - 絕對要有的 Git 觀念與習慣


林彥伶
技術文章
新手全端工程師的職場成長歷程 - 絕對要有的 Git 觀念與習慣

一、前言

先前有提到,我在轉職後、進到現職公司前,其實還有錄取過另外一份 PHP 後端工程師之職缺,因為轉職時在培訓營學習過 Ruby 這個後端語言,所以在技術考時,算是回答方向還可以,有幸被錄取。

不幸的是,我入職後發現全公司都沒有人會使用 Git!!!太驚人了啊~這麼好用的東西到底為何不使用呢?我記得我才到職一週時間,每天在辦公室裡,大家都是埋頭寫扣,最常聽到的對話就是「有人剛剛刪掉我的某某某段程式碼嗎?」

後來詢問之後才了解,原來我面試時詢問公司是否有使用 Git 做版控時,主管說有,其實是沒有的…全公司前後端分離,程式碼的交換是使用共用資料夾做傳輸…所以就會有掉程式碼的問題常發生,而大家也都沒有備份的習慣,導致專案開發常常有耗時之問題!

當然除了沒有版控,其實還有其他問題,我只做一週就離職了。從中得到最寶貴的經驗,我覺得是建議剛要踏入這行的新鮮人,可以多注意版本控制這件事,不要說是協作,你一個人在家開發 side project 時也可以用啊!隨時隨地都可以練習的~

Photo created by freepik

二、Git 是什麼?

Git 像一個檔案系統,直接在本機上取得資料,不必連線到主機端取得資料。 每個開發者都可有全部開發歷史的本地副本,changes 從這種本地 repository 複製給其他開發者。這些 changes 作為新增的開發分支被匯入,可以與本地開發分支合併。(本段落取用自維基百科之定義)

上面那段我覺得可能是因為翻譯關係較為饒舌難懂,我覺得較簡單的理解是可以把 Git 當作是一個版本開發工具,你可以隨時儲存進度、保留歷史開發內容、為每一階段開發做有效命名、以及傳送至有效之 server 作為團隊合作之工具。

以下介紹我覺得入職後最常用的幾個,如果想要從頭學習或瞭解一些冷知識的話,推薦可以看龍哥的這本書<<為你自己學 Git>>,可以依自己習慣選擇電子版或實體書籍(我個人還是喜歡實體書籍)。但入職前將下列指令熟用(稍微列幾個,但實際上也要看公司的習慣),真的是很基本的事情!

項次 Git 指令 用處
1 git add . 我通常都是一個小進度告一段落就會使用,然後搭配項次 2 的指令作為此進度之命名
2 git commit -m commit message commit message 放的就是你對目前這個儲存的時機點所完成的進度,個人推薦全英文寫上簡單易懂之小句子,可順手培養英文單字熟練度。
3 git merge branch-name 合併某個分支。
4 git push origin branch-name 就是推到某個遠端的分支做同步的意思,有可能是 feature…、develop 等等。
5 git cherry-pick commit-SHA-1 - commit-SHA-1 是指你想要的那個節點。主要是用來處理你忘記開分支出去,就開始撰寫程式碼的狀況。可以參考這個章節,有更詳細之理解。

三、Git 觀念與習慣

Git 好用之處這邊不加以贅述,遠端共同協作更是現在身為工程師必備之技能。那擁有好的 Git 觀念,我想是要靠自己不斷練習使用、常與團隊溝通合作,自然就能累積而成。這邊介紹一下我個人堅持的小習慣,但我現職的全公司都不愛用 XDD 我不懂為何…

項次 主題 內容
1 使用全指令介面 好處是可以不用切換輸入法、增加英文字彙量、有很多指令可以活用、假裝很忙? 壞處目前想不到,因為我覺得學習曲線真的不高。
2 分支命名 第一當然是尊重團隊習慣。第二則是留意分支主題是否易懂。
3 commit 訊息 盡量還是全英文書寫。有需要的話可以進到習慣介面輸入 markdown 語法詳列。保持習慣一個段落就 commit 一次,要補救或確認每日進度時很好用。

四、Git Server 又是什麼?

網路上有點難查到名詞定義,大概意思就是你在本地有的那些分支可以更新(push)到 遠端共同協作的網站,而你一直在打的那些 Git 指令是工具。

最知名的 Git Server 當然就是 GitHub 啦~聽說工程師宅宅們甚至會在上面交友,以程式碼會友~我個人等級不到還沒體驗過…但是值得一提的是它真的提供了很多服務,像是你的個人首頁看放介紹,你可以創建與你 GitHub 帳號名稱相同的 GitHub Page,大家如果有興趣可以多研究一下~(後面篇幅我也會介紹如何使用 GitHub Page)

當然,有的公司也會自架一個 Git Server,我現職的公司就是這樣的。入職後,公司會幫我們創建帳號,個人覺得和 GitHub 幾乎相同,只是那些綠點點不會長在自己的 GitHub 紀錄裡而已,但我有發現一個奇妙的點,公司自架的 Git Server 綠點點是記錄你的當日 push 次數,而 GitHub 則是記錄你當日 commit 次數,這點倒是不明白為何?

五、結論與自我鼓勵

總結當然首要提到的是,一定要進到一間有版控的公司啊!雖然也有很多公司長年沒有使用仍然可以存活,但我想背後應該有很多沒必要的苦工…次要則是想分享近期我公司同事轉傳給我們的「Git Commit Message 寫法」,這是看公司協作和個人習慣,大家可以當作參考即可。

自我鼓勵的部分,當然是覺得佩服自己中秋連假竟然可以成功不斷賽,雖然每天行程很滿,仍然在固定時間點靜下來打文章,因為聽說人類連續 21 天就能養成一個習慣,我是一個非常容易半途而廢的人(因為有點懶惰),所以需要常給自己鼓勵才有動力!各位鐵人們一起加油吧~

本文同步發佈於我的個人網站 Annie Code Life


👩‍🏫 課務小幫手:

✨ 想掌握 Git 觀念和原理嗎?

我們有開設 🔮 坐上 Git 時光機 - 版本控制 課程唷 ❤️️