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
就能成功了!
Github的缺點就是免費版的 repositories 都要公開
可是有時候做的project裡面有比較secret的部分(例如密碼或是和某些公司合約)
需要private repo 可以有幾個選項
( 記得還是要先安裝 Git )
Dropbox
1.初始化
注意目錄要使用"/"而不是"\"
ex: E:/Dropbox/OurProject
如果git remote add origin加錯了,導致之後git push失敗
可以用git remote rm origin
刪除,再重新 git remote add origin
2.合作者設定
跑初始化 那張圖的 3.~5.就好,
和以往的流程一樣 (pull、branch、commit、merge、push) 就各自回去修改code,
不過注意這裡pull要使用git pull origin master
說明
不像是Github有個網頁介面可以來看每個version修改哪些資訊,
所以就要使用git diff
、git log
、git show
等指令來看每個不同version修改哪些部分
一些指令參考
使用Dropbox缺點是本身有同步的時間差,因此多人在同步push而Dropbox還沒同步的時候就會有衝突
此外也有容量的限制,不過 Dropbox 算是一個很簡單快速的選擇。
Bitbucket
Bitbucket標榜的就是 Unlimited private code repositories,
免費版可以提供 5 users (5個帳戶)合作,其他幾乎是跟Github一樣
申請完bitbucket帳號,收信認證通過,就來開個private repo試試
官方的說明流程很仔細