Android开发工具:Git,Github,GitBook
從0開始學習GitHub系列
原文鏈接:http://blog.csdn.net/column/details/13170.html,原創發布于微信公眾號 AndroidDeveloper「googdev」
送你一份學習Git的最佳資料,關于Git看這幾份資料足夠了,請叫我良心張,贊賞、點擊廣告都是我堅持更新的最大動力!
ProGit中文版:https://git-scm.com/book/zh/v2
廖雪峰的Git教程: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
Git簡易指南:http://rogerdudler.github.io/git-guide/index.zh.html
GitHub 系列電子書免費獲取地址:http://pan.baidu.com/s/1gfn3U2v ,希望能對你有幫助。除了贊賞之外,你還可以隨手點贊、點擊下廣告,也是對我的支持與認可,希望 17 年繼續加油,一起努力!
一、Git與Github簡介
1、Git簡介
Git是用于Linux內核開發的版本控制工具。與CVS、Subversion一類的集中式版本控制工具不同,它采用了分布式版本庫的作法,不需要服務器端軟件,就可以運作版本控制,使得源代碼的發布和交流極其方便。Git的速度很快,這對于諸如Linux內核這樣的大項目來說自然很重要。
- Git是一款免費、開源的分布式版本控制系統
- Git可以有效、高速的處理從很小到非常大的項目版本管理。
- Git最初由 Linux 之父 Linus Trovalds(林納斯·托瓦茲) 開發,用作Linux內核代碼的管理。
- 官網:https://git-scm.com
Git的優勢
- 分布式,強調個體
- 公共服務器壓力和數據量都不會太大
- 速度快、靈活
- 任意兩個開發者之間可以很容易的解決沖突
- 離線工作
2、Github簡介
- Github是全球最大的社交編程及代碼托管網站(https://github.com/)。
- Github可以托管各種git庫,并提供一個web界面。
- Github作為開源代碼庫以及版本控制系統,Github擁有百萬開發者用戶。隨著越來越多的應用程序轉移到了云上,Github已經成為了管理軟件開發以及發現已有代碼的首選方法。如,國內知名互聯網公司的開源項目:
- 阿里 https://github.com/alibaba
- 騰訊 https://github.com/AlloyTeam
- 百度 https://github.com/baidufe
3、Github影響力
全球頂級科技公司紛紛加入 GitHub ,并貢獻他們自己的項目代碼
- Google:https://github.com/google
- 蘋果:https://github.com/apple
- Facebook:https://github.com/facebook
- Twitter:https://github.com/twitter
- 微軟:https://github.com/microsoft
- Square:https://github.com/square
- 阿里:https://github.com/alibaba
全球頂級開源項目都優先選擇在 GitHub 上開源
- Linux:https://github.com/torvalds/linux
- Rails:https://github.com/rails/rails
- Nodejs:https://github.com/nodejs/node
- Swift:https://github.com/apple/swift
- CoffeeScript:https://github.com/jashkenas/coffeescript
- Ruby:https://github.com/ruby/ruby
- laravel:https://github.com/laravel/laravel
全球頂級編程大牛加入GitHub
Linux 發明者 Linus Torvalds:https://github.com/torvalds
二、使用Github
1、基本概念
倉庫(Repository)
倉庫的意思,即你的項目,你想在 GitHub 上開源一個項目,那就必須要新建一個 Repository ,如果你開源的項目多了,你就擁有了多個 Repositories 。
收藏(Star)
倉庫主頁star按鈕,意思為收藏項目的人數,在 GitHub 上如果你有一個項目獲得100個star都算很不容易了!
復制克隆項目(Fork)
這個不好翻譯,如果實在要翻譯我把他翻譯成分叉,什么意思呢?你開源了一個項目,別人想在你這個項目的基礎上做些改進,然后應用到自己的項目中,這個時候他就可以 Fork 你的項目(打開項目主頁點擊右上角的fork按鈕即可),然后他的 GitHub 主頁上就多了一個項目,只不過這個項目是基于你的項目基礎(本質上是在原有項目的基礎上新建了一個分支),他就可以隨心所欲的去改進,但是絲毫不會影響原有項目的代碼與結構。
發起請求(Pull Request)
發起請求,這個其實是基于 Fork 的,還是上面那個例子,如果別人在你基礎上做了改進,后來覺得改進的很不錯,應該要把這些改進讓更多的人收益,于是就想把自己的改進合并到原有項目里,這個時候他就可以發起一個 Pull Request(簡稱PR) ,原有項目創建人,也就是你,就可以收到這個請求,這個時候你會仔細review他的代碼,并且測試覺得OK了,就會接受他的PR,這個時候他做的改進原有項目就會擁有了。
關注(Watch)
這個也好理解就是觀察,如果你 Watch 了某個項目,那么以后只要這個項目有任何更新,你都會第一時間收到關于這個項目的通知提醒。
事務卡片(Issue)
發現代碼BUG,但是目前沒有成型代碼,需要討論時用;
問題的意思,舉個例子,就是你開源了一個項目,別人發現你的項目中有bug,或者哪些地方做的不夠好,他就可以給你提個 Issue ,即問題,提的問題多了,也就是 Issues ,然后你看到了這些問題就可以去逐個修復,修復ok了就可以一個個的 Close 掉。
Github主頁
賬號創建成功或點擊網址導航欄github圖標都可進入github主頁:該頁左側主要顯示用戶動態以及關注用戶或關注倉庫的動態;右側顯示所有的git庫
倉庫主頁
倉庫主頁主要顯示項目的信息,如:項目代碼,版本,收藏/關注/fork情況等
個人主頁
個人信息:頭像,個人簡介,關注我的人,我關注的人,我關注的git庫,我的開源項目,我貢獻的開源項目等信息
2、注冊github賬號
打開官網 github.com 注冊
3、創建倉庫
腳下留心:1、新注冊的用戶必須驗證郵箱 2、一般情況一個git庫對應一個項目
4、個人中心
注冊成功或者每次登錄都會進入個人中心顯示對應的控制面板
添加合作者
三、Git安裝和使用
四、Git基本工作流程
AllenIverson@AllenIverson MINGW64 ~/Desktop $ mkdir gittestAllenIverson@AllenIverson MINGW64 ~/Desktop $ cd gittestAllenIverson@AllenIverson MINGW64 ~/Desktop/gittest $ git init Initialized empty Git repository in C:/Users/AllenIverson/Desktop/gittest/.git/AllenIverson@AllenIverson MINGW64 ~/Desktop/gittest (master)Git工作區域
實際開發目錄
- trunk,主分支 : 當前代碼開發的目錄
- tags,里程碑: 發布的版本記錄
- branches,分支目錄: bug的修復 ,新技術的研究(1,能否提供開發效率,2,能否提高軟件的訪問性能)
Master 主線/主分支
revert 恢復,checkout
Git Repository(Git 倉庫)
最終確定的文件保存到倉庫,成為一個新的版本,并且對他人可見
暫存區
暫存已經修改的文件,最后統一提交到git倉庫中
工作區(Working Directory)
添加、編輯、修改文件等動作
向倉庫中添加文件流程
命令
git initgit config --global user.name 'name'git config --global user.email 'email'git config --listtouch test.javagit statusgit add test.javagit commit -m '提交描述'git pushlsrmviclearvim使用
vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。
命令模式下:
:q 退出 :q! 強制退出 :wq 保存并退出Create/Apply Patch
五、Git管理遠程倉庫
git clone 倉庫地址git push六、Github Pages 搭建網站
七、AndroidStudio
代碼托管
- GitHub
- 開源中國
- CSDN
協同開發中Git的使用規范
先更新,再提交
Git更新的原則是要隨時更新,隨時提交。當完成了一個小功能,能夠通過編譯并且自己測試之后,謹慎地提交。
如果在修改的期間別人也更改了Git的對應文件,那么commit就可能會失敗。如果別人和自 己更改的是同一個文件,那么update時會自動進行合并,如果修改的是同一行,那么合并時會產生沖突,這種情況就需要同之前的開發人員聯系,兩個人一起協商解決沖突,解決沖突之后,需要兩人一起測試保證解決沖突之后,程序不會影響其他功能。
在更新時注意所更新文件的列表,如果提交過程中產生了更新,則也是需要重新編譯并且完成自己的一些必要測試,再進行提交。這樣既能了解別人修改了哪些文件,同時也能避免SVN合并錯誤導致代碼有錯。
多提交
每次提交的間歇盡可能地短,以幾個小時的開發工作為宜。例如在更改UI界面的時候,可以每完成一個UI界面的修改或者設計,就提交一次。在開發功能模塊的時候,可以每完成一個小細節功能的測試,就提交一次,在修改bug的時候,每修改掉一個bug并且確認修改了這個bug,也就提交一次。我們提倡多提交,也就能多為代碼添加上保險。
不要提交不能通過編譯的代碼
代碼在提交之前,首先要確認自己能夠在本地編譯。如果在代碼中使用了第三方類庫,要考慮到項目組成員中有些成員可能沒有安裝相應的第三方類庫。項目經理在準備項目工作區域的時候,需要考慮到這樣的情況,確保開發小組成員在簽出代碼之后能夠在統一的環境中進行編譯。
每次提交必須書寫明晰的標注
在一個項目組中使用SVN,如果提交空的標注或者不確切的標注將會讓項目組中其他的成員感到很無奈,項目經理無法很清晰的掌握工作進度,無法清晰的把握此次提交的概要信息。在發現錯誤后也無法準確的定位引起錯誤的文件。所以,在提交工作時,要填寫明晰的標注,能夠概要的描述所提交文件的信息,讓項目組其他成員在看到標注后不用詳細看代碼就能了解你所做的修改。
提交時注意不要提交本地自動生成的文件
例如eclipse中的.classpath文件,Windows生成的縮略圖Thumbs.db,項目編譯生成的臨時文件.obj, .class等等。如果項目中沒有進行這方面的配置來強行禁止提交這樣的文件,請自覺不要提交這樣的文件。提交了這樣的文件后,別人在更新后就可能與本地的環境沖突從而影響大家的工作。
不要提交自己不明白的代碼
代碼在提交入SVN之后,你的代碼將被項目成員所分享。如果提交了你不明白的代碼,你看不懂,別人也看不懂,如果在以后出現了問題將會成為項目質量的隱患。因此在引入任何第三方代碼之前,確保你對這個代碼有一個很清晰的了解。
慎用鎖定功能 在項目中要慎用鎖定的功能,在你鎖定了一個文件之后別人就無法繼續修改提交該文件,雖然可以減少沖突的發生率,但是可能會影響項目組中其他人員的工作。平時只有在編輯那些無法合并的文件(例如圖片文件,flash文件等)時,才適當的采用鎖定操作。
Git使用中遇到的問題
fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly error: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054原因
可能是上傳文件過大
解決方法
git config http.postBuffer 524288000 git config --global http.postBuffer 524288000總結
以上是生活随笔為你收集整理的Android开发工具:Git,Github,GitBook的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自定义控件:流式布局
- 下一篇: Android学习视频