運維人員應人手一個GitHub帳號

最近在學習一些新東西,在實驗環境下自己寫的一些程序或腳本,覺得以後還能用的上,就想保存下來;

如果保存在本地或者U盤之類的移動存儲中,以後重裝系統或者U盤丟失也就損失了,而且作爲一個IT從業人員,這年頭文件不存儲在雲端,都不好意思說自己是混IT圈的;

最終選擇了GitHub這個代碼託管的網站,以後如果寫出點像樣的開源軟件,還可以得到衆多開發者的跟進,想想就挺美的!!!

所以今天就花了點時間整理了一下官方的配置使用文檔,以幫助有同樣需求且看英文文檔費勁的同行們!


##############################################################################

  • Git和GitHub的區別

  • GitHub術語解析

  • 配置使用

    • 註冊GitHub帳號

    • 創建Git

    • 創建庫

    • 複製庫

    • 社交化

##############################################################################


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


配置使用

註冊賬戶

註冊地址:https://github.com/join

賬戶註冊沒什麼好說的,按照步驟進行即可;

:別忘記郵箱認證哦,以後的代碼提交都需要依賴你自己設置的主郵箱地址(Promary GitHub Email)哦

GUI客戶端下載:http://git-scm.com/downloads

創建Git(Set up Git)

向GitHub提交你的用戶名和郵箱地址,用以標識你的commit

wKiom1Nx2SbCryt7AADUimIDKA4801.jpg

wKioL1Nx2RGR0w6zAADeydp7E9E876.jpg

:用戶名可以隨意,但郵箱地址與綁定在GitHub帳戶上的必須一致;

本地保存密碼,避免每次通過https去clone一個庫時都需要提供用戶名和密碼

wKiom1Nx2W6yWVvUAAJMsprEejw996.jpg

wKiom1Nx2Y6iIpfQAAFNJrVqOus818.jpg

wKioL1Nx2YfzkXm1AACo7VlIS4g719.jpg

:在下載git-credential-osxkeychain時,也可將地址直接複製到瀏覽器,下載速度會更快哦!

若想通過ssh方式去clone自有的庫,則需先配置SSH key

生成公鑰和私鑰

wKiom1Nx2luRpetqAAHKQBhxyoA134.jpg

複製公鑰內容並配置至GitHub中:cat ~/.ssh/id_rsa.pub

wKiom1Nx2eeQY6M3AARsDBsCAU8875.jpg

驗證測試

wKiom1Nx23yygigCAANNeQYNxyg550.jpg

:個人測試未通過,總是超時,只能暫時使用HTTPS方式了。

詳見https://help.github.com/articles/set-up-git#platform-all

創建庫(Create repositories)

在GitHub上創建一個新的repo

wKioL1Nx24mBEgIRAAt-nOnTL-Y018.jpg

wKiom1Nx29fR3SJNAAQg65ekKW8513.jpg

爲新創建的repo添加幫助文檔README

創建README文件

wKiom1Nx3ATQRj3BAAKv7BCYGbk348.jpg

提交README文件

wKioL1Nx2_OxVui6AAE9uPQhfSA072.jpg

推送所提交的內容

wKioL1Nx3AiTxeA8AAG86B-1Zuo860.jpg

爲README文件增加內容後再次提交推送

vi README # 編輯內容
git commit -a # 編寫內容保存後,會自動提交的
git push origin master # 再次推送一次,以更新GitHub上的內容

訪問驗證

wKiom1Nx3FrQvvBkAANhgojzUTA398.jpg

詳見https://help.github.com/articles/create-a-repo

複製庫(Fork repositories)

複製庫

wKioL1Nx3EqQMjWLAAD449ndAyw411.jpg

克隆複製的庫至本地

wKioL1Nx3GDxFG0AAADaw0eGByw192.jpg

修改遠端指向源庫,而非你自己fork後的庫;庫被克隆後,默認會創建一個指向fork後的庫的遠端origin哦

wKioL1Nx3HrT2jINAAIvsBlaJlo741.jpg

推送提交至自己fork後的庫中

wKiom1Nx3LyytGdYAACxkk2IaIg451.jpg

從源庫獲取更新,併合並進自己fork後的庫的主分支中

wKioL1Nx3KbA_w7_AAEoEYHnCYg943.jpg

創建分支並設置爲當前活動分支

wKioL1Nx3LuQa97lAAEC11xK7_o135.jpg

分支間切換

wKioL1Nx3M_Ti8cnAAD7fjj2zZM347.jpg

合併分支並刪除

wKiom1Nx3Q_DawK5AAFB3Gw8oYQ867.jpg

詳見https://help.github.com/articles/fork-a-repo

社交化(Be Social)

開始找朋友,可以關注某些技術大牛的隨時更新哦

wKiom1Nx3TODanaKAADAEmzmG7o418.jpg

追蹤某個項目

wKioL1Nx3SGj_ETNAADsAioCy4w127.jpg

通過發送Pull Request,將自己的修改代碼提交給源項目的合作開發者,以貢獻自己的微薄之力


wKioL1Nx3Wyi1uyCAACmTbyGK6s930.jpg

處理事件Issues,主要是指追蹤項目出現的問題的集中地

wKioL1Nx3YrA0seeAAAgv_TyK9E368.jpg

創建組織,合作開發

wKiom1Nx3duzHMQYAAFvvGVjuwo014.jpg

標星收藏感興趣的項目

wKioL1Nx3dTxCASoAAHlKx_e5pY181.jpg

詳見https://help.github.com/articles/be-social


好了,一個簡單的GitHub就配置完成了,盡情在本地開發代碼,然後上傳GitHub託管吧,媽媽再也不用擔心我的代碼丟失啦!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章