Git 這個詞聽了好久,也知道好處,但遲遲沒用
主要就是上手的門檻有點高,要設定實在會搞死人阿@@
不少網路上的神手紛紛寫的Git教學,很久也沒激起想要弄Git的興趣
直到上了研究所時間更多、也有更多的project對於version控管更加依賴
加上前陣子看到了這份教學是目前覺得最順眼最簡單易瞭的,開始認真把Git融入資工生活中囉
如果想學更多以圖解方式講解的Git功能,也可以參考 Learn Git Branching //2014-10-08更新
或許看完上面的Slide對Git還是霧煞煞,那就 直接照著以下筆記try it ,
相信操作過對於Slide中所講的概念會更加熟悉!!!
(END 有文字簡易流程)
Github
先從最常用的線上Git服務Github來做體驗
Read on →Collaborators
Collaborators適用於一個team之間的合作。
負責開這個repository的人,進入settings,加入collaborators的帳號
這樣所有collaborators名單中的人,在git push
的時候,可以輸入自己的帳密,而不是擁有repository人的帳密。
流程會像這樣:
A擁有repository,想要B也能更新自己的repository,就把B加入collaborators,
這樣B要一起合做這份code的時候,先按照前一篇的流程設定
B初始化的時候, 注意clone URL 是 A 的 repo 的 clone URL,
然後B就可以在自己的本機盡情修改code (用branch、commit、merge)
最後在push的時候輸入B自己的帳密,
會更新A的repository(A仍就可以繼續更新自己的repository)
但B自己的github帳戶並不會有一份和A相同的repository(只會有A的repo連結)
Fork & Pull request
另外還有另外一種多人合作方式是 Fork & Pull request
情境像是 A 擁有一個repo a,B看到覺得還不錯
所以就fork一個到自己的repo中,這裡叫做b (雖然a,b實際上名字一樣,不過用a,b稱呼比較容易搞懂)
I. Setup
1. 第一次建立 repo
在Github上開repo
2. 開始分工
分工方式:
- 管理者將合作者加入Collaborators,每個合作者clone一份回去(初始化),修改後直接push
- 合作者各自fork回去,修改之後再發pull request給管理者
II. 開發過程
1. Pull
每天開工就記得先 git pull
,更新本機的code
2. Coding
開發新功能 git branch [branch-name]
git checkout [branch-name]
養成好習慣,修改一個功能就記得 git commit
(配合 git status
git add [修改過的檔案]
)
3. Push
有開新branch記得和master合併: git checkout master
git merge [branch-name]
然後就push回遠端server啦 git push
不過多人合做最常發生的情況就是
- A、B 各自clone回去
- A、B 各自修改code
- A push
然後這時還在修改code的B,並不知道A已經push,
因此B在修改完code後要push就會失敗
此時就需要用到git pull
將遠端最新的branch下載與本機的branch合併
之後再git push
就能成功了!