科技新知

Git Co-Work Flow

雖然git面世已很久,但相當一部份澳門朋友都是solo man,很少合作寫code,對git branch始終都有些恐懼。所以這次來解召一個基本原則,至少你不會爛了code救不回來。

若然大家未熟悉git,初次利用git合作寫program,請盡量減少使用共同分支(branch),可以極大地減少問題。

第一個大原則 - 建立一條自己分支

在一個repo中,為自己建立一條分支(branch),可以減少Remote repo中有人比你先commit,而令你push失敗的情況。

Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。

除非你的隊友故意你用的分支名先commit,又或者你自己有幾台電腦,幾台一起做改動。不然push 應該不會有問題。

第二個大原則 - 用fetch取代pull

很多人在取用Remote Repo的更新時,都會使用pull。但pull其實是fetch及merge的混合,而且merge還要考慮source branch是那條分支的問題,若然大家都有一條獨立branch,那麼這個無腦pull並不存於每人只有一台電腦下的多人協作中。

fetch的過程中,還可以加入參數--prune,順便依照Remote Repo的指示,同步刪掉本機中一些不再存在的origin/branch。

Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。

第三個大原則 - Merge前先Commit

經過前述fetch後,其實他人的改動並未加入自己的分支中,必需經過merge才會出現。但並不是沒有conflict就無腦merge。 假若自己有改動,未commit,應該老虎蟹都先commit。這是為了在merge後,還有機會可以無腦reset,回到之前那個commit。這就像是做任何更新前,先做backup。

Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。

第四個大原則 - 由某個特定的人來管理master或main branch

main branch(以前叫master branch),是他人下載時的預設分支,也是Github、Gitlab的預設顯示分支。所以該分支存放著的source code,應該在代表信心度比較高。

在協作的環境中,每人都有自己分支,那就代表要有一位人員做管理,他負責checkout main, 然後合併其他已驗證的分支。

Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。

在某些比較嚴僅的環境中(例如Github、Gitlab),main分支可能會被系統機制鎖定,必需通過系統內鍵的Pull Request,才能通過審核,合併到main。另外,也有一些關於開發上的Git workflow,主要針對功能管理、版本發佈、錯誤修正等控制。有機會再為大家介紹。

希望以上的流程,可以有效且容易地讓大家協作。如果有任何command錯誤或更新,都可以經Github Pull Request通知筆者。

馬交野


唐人街探案
MINECRAFT: 我的世界大電影
破。地獄 加長版
中國首映《破碎的憤怒》及導演北野武大師班
《摘金奇緣》放映及編劇Pete Chiarelli 映後交流
亞洲首映《卓別林:流浪之心》及製片人卓別林孫女Dolores Chaplin 映後交流
世界計畫 崩壞的世界與無法歌唱的初音未來
狗狗打官司
破.地獄 加長版
貓貓的奇幻漂流
IMAX with Laser MINECRAFT:我的世界大電影 英語版
快樂到死(4K修復版)
MX4D MINECRAFT:我的世界大電影 英語版
4DX  英語版  MINECRAFT:我的世界大電影
英語版  MINECRAFT:我的世界大電影
4DX    MINECRAFT:我的世界大電影
MINECRAFT:我的世界大電影
劇場版 世界計畫 崩壞的世界與無法歌唱的初音未來
快樂到死 4K修復版
MINECRAFT :我的世界大電影
香港四徑大步走
PUI PUI 天竺鼠車車 電影版 MOLMAX
摘星廚神:巴黎夢
你的顏色
摘星廚神.巴黎夢
穿越時空の初吻
贖夢
4DX  白雪公主
白雪公主
魔域女巫
高空殺機
孤獨的美食家
無痛俠
猴
門逃
米奇17號
4DX  哪吒之魔童鬧海
哪吒之魔童鬧海
阿諾拉
年會不能停!
唐人街探案3
唐人街探案
MINECRAFT: 我的世界大電影