Git和GitHub的區別html
GitHub術語解析git
配置使用github
註冊GitHub賬號web
建立Git瀏覽器
建立庫安全
複製庫bash
社交化ssh
Git和GitHub的區別分佈式
Git是一個分佈式的版本控制系統,與SVN相似;最初由Linus Torvalds編寫,用做Linux內核代碼的管理。在推出後,Git在其它項目中也取得了很大成功,尤爲是在Ruby社區中,因此目前有不少著名的項目都使用Git進行版本控制;工具
而GitHub是託管各類git庫,並提供一個web界面的一個網站(官方地址是https://www.github.com/),能夠經過本地的git客戶端將本身的代碼上傳至GitHub;能夠在GitHub上創建公共庫,做爲開源軟件或我的使用,也能夠付費創建私有庫,這樣就能夠做爲公司內部軟件的代碼管理工具;
GitHub術語解析
Blame
Git中的「blame」特性描述了文件的每一行的最近一次修改信息,包括修改內容、做者和時間等;可用於追蹤某軟件新特性的添加及引發bug的提交操做;
Repository
庫是GitHub的最基本元素,可想象成本地的項目文件夾;一個庫包含全部的項目文件(包括幫助文檔),並保存每一個文件的修改歷史;庫能夠有多個合做開發者,也能夠做爲公共庫或私有庫的形式開發;
Private Repository
私有庫,是指只能被庫的建立者或者合做開發者查看並編輯的庫,須要付費使用;
Branch
分支是一個庫的並行版本,包含在庫內,容許獨立的開發而不影響現有主分支(primary or master)的運行;當在分支的修改須要發佈時,就能夠將分支合併(merge)至主分支(master branch),這樣利於多人的分佈式開發;
==============================術語分類解析分割線==================================
Pull Request
即代碼合併請求,由其它開發者或用戶向項目的collaborators提議的修改請求,collaborators以爲修改信息合理有效即接受,不然拒絕;
Merge
將一個分支中的修改內容應用到另外一個分支的操做就作合併;若兩個分支內的修改內容無衝突,則能夠經過合併請求(a Pull Request)或命令行(the command line)完成合並操做;
Clone
克隆,是將GitHub上的庫文件整個複製到本地主機上,能夠實現離線修改,等上線後再同步至Github上的庫便可;
Commit
提交信息,或者稱爲修改信息,是我的提交的對文件的修改記錄;
Fork
對其它開發者的庫的我的複製,複製的庫存在你本身的帳戶上,你能夠自行修改項目內容而不會影響原始的庫,也能夠將本身的修改經過合併請求(a pull request)的方式請求原始庫的開發者更新你的修改;
Fetch
取回,表示從在線的庫上獲取最新的修改信息而不須要合併代碼,取回的代碼能夠與你本地的分支代碼進行比較;
Push
推送,表示將本地的修改內容推送至線上的庫,這樣其它的開發者就能夠經過GitHub網站訪問到你的修改內容了;
Remote
遠端版本,即相似於GitHub.com的非本地主機的項目版本,能夠鏈接至本地克隆的版本以實現內容同步;
==============================術語分類解析分割線==================================
User
用戶,指我的註冊的GitHub帳戶,每一個用戶均可以擁有多個公共庫或私有庫,也可被邀請加入organizations或稱爲collaborates;
SSH Key
私鑰,是GitHub用以驗證你本地主機的身份的,並用此密鑰加密傳輸GitHub網站和你本地主機的數據傳輸,以保證安全性;這個是須要在「Set up Git」步驟中配置的;
Organizations
組織,即多個開發者組成的團體,可包含衆多的庫和開發團隊;
Collaborator
合做開發者,被庫的全部者邀請共同開發某一項目,擁有對庫的讀寫權限;
Contributor
貢獻者,對項目有所貢獻(如提交代碼,修復bug等)的開發者,但不具有合做開發者的訪問權限;
==============================術語分類解析分割線==================================
Diff
差別,指2個commit或保存的改變間的差別,能夠很直觀的看出一個文件自上次commit後增長或刪除的內容;
Open Source
開源,原指可自由使用、修改和傳播的軟件,現擴展爲一種超越軟件的合做哲學,即工件(working materials)在線可用,可被任何人複製(fork)、修改(modify)、討論(discuss)、並提出修改意見(contribute to);
Markdown
一種輕量級的標記語言,書寫簡單,不一樣於html,無需大量的<tag>就能夠實現內容的格式化;GitHub上的衆多庫中的幫助文檔就是這種格式,如README.md;
Upstream
上游,對於一個branch或者fork來講,源庫的主分支便是其它修改信息的源頭,被稱爲upstream,相對的其它branch或fork就被稱爲downstream了;
詳見:https://help.github.com/articles/github-glossary
配置使用
註冊帳戶
帳戶註冊沒什麼好說的,按照步驟進行便可;
注:別忘記郵箱認證哦,之後的代碼提交都須要依賴你本身設置的主郵箱地址(Promary GitHub Email)哦
GUI客戶端下載:http://git-scm.com/downloads
建立Git(Set up Git)
向GitHub提交你的用戶名和郵箱地址,用以標識你的commit;
注:用戶名能夠隨意,但郵箱地址與綁定在GitHub賬戶上的必須一致;
本地保存密碼,避免每次經過https去clone一個庫時都須要提供用戶名和密碼
注:在下載git-credential-osxkeychain時,也可將地址直接複製到瀏覽器,下載速度會更快哦!
若想經過ssh方式去clone自有的庫,則需先配置SSH key
生成公鑰和私鑰
複製公鑰內容並配置至GitHub中:cat ~/.ssh/id_rsa.pub
驗證測試
注:我的測試未經過,老是超時,只能暫時使用HTTPS方式了。
詳見:https://help.github.com/articles/set-up-git#platform-all
建立庫(Create repositories)
在GitHub上建立一個新的repo
爲新建立的repo添加幫助文檔README
建立README文件
提交README文件
推送所提交的內容
爲README文件增長內容後再次提交推送
vi README # 編輯內容 git commit -a # 編寫內容保存後,會自動提交的 git push origin master # 再次推送一次,以更新GitHub上的內容
訪問驗證
詳見:https://help.github.com/articles/create-a-repo
複製庫(Fork repositories)
複製庫
克隆複製的庫至本地
修改遠端指向源庫,而非你本身fork後的庫;庫被克隆後,默認會建立一個指向fork後的庫的遠端origin哦
推送提交至本身fork後的庫中
從源庫獲取更新,併合並進本身fork後的庫的主分支中
建立分支並設置爲當前活動分支
分支間切換
合併分支並刪除
詳見:https://help.github.com/articles/fork-a-repo
社交化(Be Social)
開始找朋友,能夠關注某些技術大牛的隨時更新哦
追蹤某個項目
經過發送Pull Request,將本身的修改代碼提交給源項目的合做開發者,以貢獻本身的微薄之力
處理事件Issues,主要是指追蹤項目出現的問題的集中地
建立組織,合做開發
標星收藏感興趣的項目