以下内容来源自网络,整理出来以备查阅:
1. 什么是github
github公司提供的代码托管服务,参考wiki http://zh.wikipedia.org/wiki/GitHub 官网:https://github.com/
个人可以申请免费的代码托管服务,把自己的代码开源。
2. 小团队如何使用github
在申请github账户后,可以把账户转成组织形式,把团队成员分在不同的team中,并设置权限。
参考《GotGitHub》 http://www.worldhello.net/gotgithub/index.html
3. git 客户端
Windows https://windows.github.com/
4. git 常用命令
转一个博友 阳光岛主的文章 http://blog.csdn.net/ithomer/article/details/7529022
5. github的工作流(workflow)
原文http://scottchacon.com/2011/08/31/github-flow.html
繁体翻译 http://blog.krdai.info/post/17485259496/github-flow
由于繁体翻译的网页可能会在某些时候打不开(你懂的)
转帖如下:
在 git workflow 的相關文章當中,最出名的就是 git-flow,不過 git-flow 的最大問題就是實在是太複雜了。所以我一直想找個比較簡單的方法, Scott Chacon 這篇文章主要就是講在 GitHub 內部使用的方法,以下是簡單的整理。
GitHub Flow
在 git-flow 當中,是圍繞著 release 的概念所構成,不過在 GitHub 當中其實沒有真正所謂的 release,通常 GitHub 每天都會做 deploy,所以另外搞個 release branch 太麻煩了。在 GitHub 當中, 他們使用 git 的 principle 如下:
- 所有在 master branch 的程式都是 deployable 的
- 如果要增加新功能,從 master 當中開一個敘述此新功能的 branch (像是 new-oauth2-scopes 之類的)
- 在本地端 commit 到這個 branch,並且經常性的 push 到 server 上面同名的 branch
- 如果需要 feedback、幫助或是你完成這個功能可以 merge 回去的時候的時候,pull request
- 如果有人 review 過並且簽名之後,就可以 merge 回 master
- 只要 merge 之後馬上 deploy 程式碼
相對於 git-flow 那一堆有的沒的 branch,GitHub flow 的規則簡單許多,下面分別對每項 principle 再做些說明。
在 master branch 當中的任何東西都是 deployable 的
這是整個 GitHub flow 當中最重要的規定,所有在 master branch 上面的 code 都必須是可以 deploy 上去的,也就是說必須通過測試還有可以 build。所以必須在其他 branch run 過 test 才可以 merge 回 master branch。
在 master branch 中開一個敘述新功能的 branch
當要開始做新功能的時候,就直接從 master branch 開一個新的 branch,branch 名稱就是敘述新功能在幹啥。這有幾點好處,一個就是你可以看到別人在做啥東西,另外就是如果有一陣子沒碰這個 branch,之後回來繼續搞的時候可以很容易的回想起來之前在幹啥。因為在 github 中可以直接在 Branch List 看到目前的所有 branch,所以可以很明確清楚的看到接下來可能會有哪些 features 以及目前的狀況。
經常性的 push 到同名的 branch
既然只要確保 master branch 不要被搞爛就好,那麼 push 到其他的 branch 也不會造成太多的困擾。經常性的 push 除了可以讓你的 source code 有備份之外,也是個和他人保持溝通的管道。
隨時都可以發 pull request
在 GitHub 中,可以用 pull request 來當做 code review system,GitHub 的 pull request 基本上就是拿來溝通用的。
只有在 review 過後才 merge
在 feature branch merge 回 master 前,基本上你的 code 都要讓公司裡面的其他人看過並且簽名。只要 review 過程 ok 而且這個 feature branch 通過 CI,就可以 merge 回 master
Review 過後馬上 deploy 程式碼
在你的 code merge 回 master 後,就馬上 deploy。
結論
相對於 git-flow 來說,GitHub 的 work flow 簡單許多,對於會在一段時間之內做一次 formal release,或是必須對於不同的 branch 做維護的團隊來說,git-flow 會是個很好的選擇。 不過對於經常 testing 以及 deploying 的團隊來說,比較簡單的 GitHub flow 會比較符合需求。