如何有效地使用github?

一般github上的開源項目都基本看不懂的!!那麼如何有效的利用github呢??傳了一些自己敲的C Primer Plus 的源碼上去,不知是否有意義??


除了一些常用功能,我們看看大家都是怎麼樣在使用 Github 的。

博客

  • 有人直接在上面寫博客,例如: dwqs/blog
  • 有人利用 Github 來搭建獨立博客,例如 tmallfe/tmallfe.github.io
  • 獨立博客搭建教程請見 —— 如何搭建一個獨立博客——簡明Github Pages與Hexo教程

書籍

  • 有人用來寫書,eastlakeside/interpy-zh ,《Python進階》(Intermediate Python 中文版) 簡介 · Python進階
  • 這裡還有個例子 wangjiegulu/kotlin-for-android-developers-zh

朋友圈

  • 有人把他當成朋友圈 —— 如何高效利用 GitHub 提升自己

微博

有人把他當微博,follow 大 V ,以下這幾個大 V 可以follow 下,這樣就可以在首頁 timeline 里看到他們的最新動態:

  • Linux 的創始人 —— torvalds (Linus Torvalds)
  • Ruby on Rails 的創始人 —— dhh (David Heinemeier Hansson)
  • Android之神 —— JakeWharton (Jake Wharton)
  • Google Chrome 開發者 —— paulirish (Paul Irish) ,addyosmani (Addy Osmani)

資訊

  • 了解最新的編程項目 —— Explore GitHub, Github Trending
  • 定位最受歡迎的 PHP 項目 —— Github 排行

個人簡歷

  • gwuhaolin/resume
  • Github 賬號數據分析生成簡歷

任務管理

  • [GitHub Projects]在GitHub上使用看板功能 | 全端開發人員天梯

團隊協作

  • 團隊合作流程

閱讀代碼

  • 極力推薦 —— buunguyen/octotree

-EOF-


  1. Follow 你感興趣的領域厲害的人物,持續關注他們在 GitHub 上的活動,選擇其中優秀的資源學習之。

     tip: 學習要深入,不要止步於泛泛地了解。

  2. 將你自己的玩具項目源碼大膽發上去,不斷用你學習到的優秀的模式和架構對它們進行重構,形成你個人比較固定的編程規範。

     tip: 擁有自己長期維護的項目,多重構。

  3. 學習並逐漸掌握 GitHub 的工作流,使用版本控制和 Issues、Milestones 等記錄和掌控自己業餘項目的進度。

  4. 善用搜索,善用 awesome 系項目。

  5. 勤做筆記,使用倉庫/gh-pages/Issues 寫博客都是不錯的方式。

  6. 參與到別人的項目中去,使用別人項目的過程中遇到問題先去 Issues 和 Pull Requests 里尋找解決方案,找不到的嘗試自己去修復提 Pull Request,能力所限修復不了的提 Issues 尋求幫助。

     tip: 提 Issues 和 Pull Request 先閱讀一下項目里的 CONTRIBUTING,遵循項目的規範。

  7. 如果可以,發動你身邊的朋友們跟你一起用起來,有適當的好友互動會更有趣。

     tip: 不要把它玩成了純社交,不停刷 timeline 那就不如玩朋友圈了。@mzlogin,歡迎互動。


如果你知道過去包括現在的很多項目組都在使用郵件組+diff+patch協作開發軟體,你就能夠非常容易的理解GitHub在做什麼樣的事情。

就像很多人只用過Virtual Terminal(比如超級終端和PuTTY,卻從未見過真正的Terminal一樣(比如VT100)。在題主出生的時候恐怕真實的Terminal已經快進博物館了。

從這個角度看Github更像是一個UI,國內的開發者只有很少一部分人能提交一個質量非常高的patch,也就是git里的commit。所以Github本質上降低了對開源軟體貢獻的難度和門檻,讓更多的人可以參與進來,使其變成某種形式的社交。

或許linux文檔里的如何提交一個補丁就是個不錯的解釋 SubmittingPatches

其實用好git才是最重要的,熟練掌握一種版本控制系統可以極大的提高你的效率。版本控制系統可以幫助你在不斷的迭代開發中快速的定位錯誤,因為所有東西都是有跡可循的。而像分散式版本控制系統則可以讓你在本地自由的開發,而又能和他人很好的合併和交流代碼。


對於我們之中大部分人來說,GitHub 是用來找代碼的,所以有效地使用方式主要就是如何找到對自己有用的代碼,主要有兩種方式:

  • 使用搜索,特別是高級搜索,可以按語言、流行程度等排序
  • 追熱板 https://github.com/trending

我們不生產代碼,我們只是代碼的搬運工 斜眼笑.jpg


請看廖老師的Git教程

寫開源項目挺有意義的,我寫了半年開源項目,感覺已經有了一個台階式的提升。

1、鍛煉表達能力,得把自己的項目說清楚了,並描述核心特點,就跟做產品一樣,不然再牛逼也沒用。

2、自動測試啊,自動打包,代碼質量分析啊,這些都用上了,原來這些都沒使用過,確實很好用。

3、設計開源項目思想,這個也會逐漸提高,我也是從大而全,逐漸轉變成小而精,組件化,樹形結構化。

4、最後就是每天被點星,推到當日,當周世界排行榜時很開心。

5、最後就是pull request了,如果有人給你pull request,就說明確實有人使用,並且找到一些bug了。這是最好了,雖然我的項目還有沒有pull request。

然後就是github流行項目學習,建議找一些代碼量不大,並且很流行的項目學習源碼,畢竟咱們也得考慮時間成本,10年學完了虛幻4,請問有何用?我最近就想看看阿里的hiloteam/Hilo,看看有沒有什麼可以改的。

推薦我的一片開源項目

dianbaer (電霸兒)


為什麼沒人推薦udacity裡面的課程「git入門操作與實踐」呢?免費的,大概是這個名字

花一個下午就掌握git全部技能了,畢竟大部分對文檔的實際操作能力不如實戰來得直接。

對了,udacity是不是可以考慮下給我廣告費。


Watching別人的代碼、吸收後提交自己的修改,讓大神幫你指正或merge你的push...


你要先學會git push


推薦閱讀:

Github Pages/GitCafe pages 可以搭建博客,並且可以綁定域名,是基於什麼原理的呢?
有哪些github pages開源項目可以用來建博客?
使用 GitHub Pages 來做博客是否道德?

TAG:Git | GitHub | GithubPages |