PM 也能乘著 Git 時空旅行

#git #PM
阿金
技術文章
PM 也能乘著 Git 時空旅行

PM 除了常被討論到的溝通、專案管理技能,在團隊中是否具備補位能力,也是能否讓團隊成員妥善發揮的重要指標,尤其在小團隊協作中,善於補位的 PM 能給的 buff 效果也會更為顯著。

那什麼是補位?補位又該做什麼呢?

簡單來說,在專案過程中能讓開發流暢進行,但沒有專人負責、沒被注意到、可能讓夥伴被打斷的事項,或是需要反覆確認的細節等,都會需要有人能適時補上空缺。當然,這也不僅是 PM 的責任,就像出團打副本,如果每個人都能靈活支援彼此,應該都能滿載而歸才對 XD

而在小團隊中, PM 最常見的補位就是 QA。

團隊協作中難免會出現溝通過但認知不同的狀況,或是開發中沒有注意到的盲點,若能在 QA 這道防線中被察覺,就可以在功能上線或交付前找到問題,早發現早治療。

接著,就來說說 QA 必學的 Git 指令吧!

複製專案到本機

QA 時常需要在本機端進行測試,這時我們會利用 git clone 這個指令取回線上的 Repository,在這篇文章裡有包含圖形介面及指令的解說,在此就不多贅述,接下來的介紹也將以終端機上的操作指令為主。

(專案複製到本機端後,記得詳讀當中的 README 文件把專案環境先架設起來喔!)

切換分支

多人協作的專案常會採用多分支進行開發,主要是為了不影響已上線的功能,也避免大家在開發過程中你等我、我等你這樣浪費時間,說好先各自平行發展,等確認沒問題後再一一合併回來。

使用慣例上,一個分支通常代表就一個功能或一個 Bug 的修正,在測試時就針對每個分支處理的內容驗證,可以限縮問題的範圍,減少多個功能混合開發導致問題很難追溯的情況。

換句話說,你今天預計測哪個功能,就切到那個功能的分支去測試。

$ git checkout feature_1
Switched to branch 'feature_1'

使用 git checkout 會將遠端的分支建立一份在本機端,也可以用來在本機端切換分支,同時還是檔案救星!如果使用 Git 的過程中發現做錯事了,莫急莫慌,這指令可以用來拯救被誤刪的檔案或目錄

更新分支內容

如果一個分支在測試的同時也還在進行開發,那麼能隨時拉到開發人員最新推出的分支內容就很重要了,要嚴防自己的分支內容跟不上時代啊!XD

$ git pull

這主要在處理當遠方的分支內容更新時,要讓本機能同步成最新的狀態,這樣就能確保自己不會測到過時的內容,也避免開發人員已經修正過的問題沒有被注意到而造成誤解。

雖然看似單純,但 git pull 背後的故事可不只這樣而已!搭配不同參數還有不同奧妙,就留給有心人自己挖掘了。(笑)

新增/查看目前分支

有時候,一些簡單的設定檔修改,也是 PM 可以協助的範圍,這時可能就需要加入新的分支,用來測試加入或更新的設定檔是否正確。例如:我們試著新增一個叫作 feature_2 的分支。

$ git branch feature_2

發現好像什麼事都沒有發生 o_oa
那要怎麼確認這個分支到底有沒有被加出來呢?
其實上述指令去掉後面的 branch name,就可以用來查看分支列表。

$ git branch
  feature_2
* feature_1
  master

看起來這個分支有被加出來了,但怎麼確認我目前在哪個分支上呢?
上面的例子裡,分支名稱前的星號稱為 Head ,標示的就是目前所在的分支,要在新分支上調整設定檔的話,記得先利用上面説的 git checkout 指令切換過去唷!

$ git checkout feature_2
Switched to branch 'feature_2'

將檔案交給 Git 做版本控制

PM 除了在協助 QA 時會頻繁地切換分支外,偶爾也會協助更新設定檔這些簡易的修改,如果說前面的指令主要在切換版本,這裡要提的就是將協助修改或新增的檔案上傳到 Git 加入控管所需的相關指令。

當我們在目錄裡新增了一個 Git 之前完全不認識的檔案 hello.html 後,可以利用 git status 這個指令來查看目錄當前的版控狀態。

$ git status
On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

          hello.html

此時 Git 表示:這誰啊?我不認識。雖然發現了這傢伙的存在,但因為沒聽說過這位想幹嘛,所以hello.html 就先列為 untracted file 囉。

hello.html 也是後續需要被納入版本控制的檔案,當務之急還是趕快透過 git add 讓 Git 知道這位之後也是快樂夥伴吧。

$ git add hello.html

此時,終端機畫面看起來平靜無波、不起漣漪,但我們可以利用 git status 確認一下。

$ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

          new file:   hello.html

看起來 hello.html 這個檔案有被順利認識並註記為新朋友了,但這其實還不算是真的加入為版控成員。git add 這個指令就像跟 Git 說:這位先登記錄取,之後再跟其它人一起報到的意思差不多。

等到其它需要新增、修改的檔案也透過 git add 登記好了之後,再利用 git commit 一起正式報到給 Git 儲存控管。

$ git commit -m "Add some files for ..."

git commit 後加上參數 -m 可以直接輸入本次修改處理了什麼事情,讓其他協作者或將來的自己可以快速看懂這次的修改發生了什麼事。

完成 git commit 之後,總算是將這次的修改正式交給 Git 控管了!

如果想研究如何搭配圖像介面使用,或是想進一步了解更多細節,建議可以服用這篇,個人覺得對了解這些指令有奇效 XD

總結

這篇稍微介紹了 PM 平常會用到的一些 Git 入門指令,熟悉這些指令後就可以在不同分支中跳來跳去,一下我進來了,一下我又出去了,耶!

這些指令用起來都不難,也沒什麼毀天滅地的破壞性,建議同是 PM 的你可以試著以此為起點接觸 Git,發現它的妙用後就能做更多的應用。Git 絕對是 PM 值得一點的技能樹!

如果有興趣進一步認識 Git 的話,就走這道任意門前往探索吧!門的彼端有詳盡、有趣、又容易理解的介紹喔!


👩‍🏫 課務小幫手:

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

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