《GIT團隊協作》讀書筆記

alberthao發表於2017-10-19

《GIT團隊協作》讀書筆記

1 我學GIT的小故事

2014年我曾經學過GIT,不過沒有弄明白;那次是因為R語言很火,參加了一門Coursera上的MOOC課程。結果很快就因為各種原因沒有堅持下來。
最近因著學習Python、Linux,又拿起GIT的書開始看起來,這次讀的是《GIT團隊協作》。英文名叫Git for teams。 結合著李笑來先生的部落格、Git Pro中文第二版,終於又向前邁出了一點點步伐。
之所以提及自己失敗的經歷,是因為我們大多數人都想學很多東西,但是就有一些東西學了卻沒有學會。原因之一是我們沒有弄清楚要學的東西是什麼,會對我們的生活有哪些幫助。這和我們學習Excel、學習Cad一樣,會用到的東西一般都會學的比較快。

2 GIT是什麼

簡單的說,我覺得GIT是一款版本控制和協作軟體。如果你從事軟體程式碼開發、寫作以及其他以文字檔案為主的團隊協作,都可以將GIT納入你的“兵器庫”。 你可以問自己幾個問題,來看看是否要深入學習下GIT: 你是否經常修改程式碼或者其他文字檔案? 你是否擔心自己的程式碼改來改去,最後卻不知道哪個版本是有效的? 你是否存了好多用日期或版本號為檔名的文件,但最終想要回退到以前的某個版本時,卻要找很久或者根本找不到? 你的團隊是否還在用郵件互傳檔案進行協作?

3 學習GIT的門檻:

第一是不要怕命令列這種輸入形式;
第二是有一些Linux的知識,因為許多介紹文件都是以Linux為例的。
第三是有畫圖的習慣。
第四是有寫文件的習慣。

4 這本書寫了什麼

看書名你也猜的到,這本書寫的是兩塊內容,一部分是GIT,一部分是團隊協作。 關於GIT本身,有很多不錯的書籍,例如GIT PRO,有圖靈負責翻譯的,也有免費版的。 我想重點分享第二部分。《GIT團隊協作》中花了約三分之二的篇幅介紹如何建設團隊、如何選擇工作流。 我個人感覺,作者這樣安排也是有道理的。這就好比一件非常不錯的兵器,有的團隊用的好,有的卻用的不好。其實你把它用“外因加內因”來分析就明白了。團隊協作水平是內因,GIT工具是外因。而外因需要通過內因起作用。

4.1 促進團隊協作的幾個方面

本書的第一章重點介紹了團隊建設方面的內容。你可以直接在圖靈網站本書的頁面免費試讀。
作者精煉的介紹了團隊中各成員的角色:從收集使用者故事開始,講到了測試、部署、運維、開發、架構等方面。
然後作者介紹了三種不同的思維策略:包括創造性思維,理解性思維,決策性思維等。你可以利用書中的特徵來衡量下看自己是屬於哪一類的。然後看看你的團隊成員是哪一類。 瞭解團隊成員的這些不同偏好,你就更容易理解團隊成員,並在開發新功能特性、程式碼評審等環節加強與他們的協作。 最後她還提到了團隊會議的一些注意事項。 如果你是專案經理,裡面有個培養同理心的小節,很值得看看。
這一章節也簡要提到了Git團隊協作的一些術語。

4.2 團隊協作時的訪問許可權模型

書中的第二章作者提到了訪問許可權模型,並用圖畫的形式進行了介紹。 限於版權,僅舉一例給你看一看。這是一幅“適合並列貢獻者倉庫的模型”。少數核心維護者負責維護“官方倉庫”,並列關係的個人貢獻者則通過派生的“個人倉庫”來建立“本地倉庫”,並進行簽出、提交等操作。
enter image description here

4.3 GIT的分支和合並

接下來的這幅圖,取自Git Pro。你可以看看分支的概念。分支就是不同的指標,指向不同的節點。用於隔離不同的開發工作。例如圖中的ISS53就是用來解決53號工單的問題。 關於合併等方面的更多內容,你可以參考本書的第5章。

enter image description here

4.4 團隊使用GIT的工作流

第4章從工作流的角度,對一個開發專案的全流程進行了介紹。我覺得這一節中,最關鍵的是養成編寫文件的習慣。同時及時更新工單狀態。

4.5 幾個概念的突破

check out
好比你從圖書館借書,你check out後,就擁有了對當前書籍的處理權,可以在上面做一做標記等。
branch
隔離不同的工作,根據你團隊對於專案的理解,可以按照很多種方法來使用。本書第3章重點介紹了分支模型。
rebase (這一塊理解的還不是很清楚,還得多看看)
根據對專案協作歷史的不同要求,可以採用不同的合併方式。有人希望儘可能多的保留專案歷史,有人希望儘可能多的保持清晰乾淨的專案歷史。
bisect
二分法來對衝突進行確認。

4.6 資源分享

https://learngitbranching.js.org/ 線上學習git分支
http://www.ituring.com.cn/article/264697 圖靈讀友的分享
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000廖雪峰的教程
http://lixiaolai.com/2016/07/05/makecs-git-basics/ GIT時光穿梭機

相關文章