歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Github使用入門基礎教程

Github使用入門基礎教程

日期:2017/2/28 13:59:33   编辑:Linux教程

Github使用簡介
———————-

當我們的項目需要多人協作的時候,有一個公共的代碼文檔倉庫就會很方便。由於網上最廣泛使用的服務還是github.com,盡管自己最熟悉的是SVN,但還是為了能用上更好的服務而選擇了github。

Github上的幫助頁面有個Bootcamp的指引,實際上Windows和Mac系統都基本上可以通過github所提供的客戶端進行便捷的管理,只需要點擊Download Github for Mac/Windows下載安裝就可以了。(注:後來發現github的客戶端只支持最新版的OSX,若10.7以前的可以選用其他/更專業的git客戶端,比如說SourceTree)

而Linux系統將會稍麻煩一點,需要按照指引一步一步做。Github上手步驟分成四步:

1. Set Up Git
2. Create a Repo
3. Fork A Repo
4. Be Social

第一步會告訴你如何通過git的命令行設置你的名字、帳號和SSH密鑰,生成密鑰之後還需要上傳到自己的帳號設置裡面,之後才可以進行其他操作。第二步是要如何創建一個repository,一般會包含一個最基本的README文件,因為空目錄不會上傳到repository上。第三步就是如果你希望對其他repository進行分支的更改,這適用在沒有修改該repository的權限,或者不希望將自己的代碼跟別人的repository混在一起的時候,就可以通過分支到自己的帳號上,用自己的repository進行修改,同時通過upstream來同步原始repository和自己的repository的代碼。第四步介紹了如何在github上與其他用戶的交流。在Linux下也有其他圖形客戶端,比如說RabbitVCS就挺好的,能夠同時支持SVN, Git和Mercurial,使用的是windows下的Toitoise系列的風格。

但在linux下有一個地方要注意的,如果是github的private repository(私有倉庫),只用git clone命令是無法拷貝到本地的(用其他客戶端也不行),而需要用以下的命令行:

$ git clone [email protected]:username/projectname.git
經過前面幾步之後,就已經可以用git來存放自己的代碼了。後面還需要學習一下Git的版本控制理念,如怎樣提交代碼,怎樣做分支的管理和版本控制,這要結合到團隊成員之間如何配合管理提交代碼。

Git概念簡述
———————

Github是一個提供了Git代碼版本管理服務的服務器,使用版本控制和代碼托管有什麼好處呢?

  • 我們可以通過github的網站隨時隨地浏覽,我們的代碼和文檔資料(如:arduino-exercises)。
  • 我們可以跟蹤所有提交到服務器的更改(也就是如果你做了壞事都會有記錄 ,如:arduino-exercises的history)
  • 我們可以對現有的工作資料進行備份。如果碰巧你的硬盤壞了或者電腦丟了,起碼網站上有一份備份。
  • 我們可以持續地對自己的工作做更改。Git支持我們對現有的內容創建分支,保存快照,合並修改等,讓我們可以不斷地改進作品而不影響原有的版本。

以下是Git對文件管理流程的簡介:

1. Checkout。第一次使用需要從遠程服務器fetch並checkout HEAD來創建本地的工作目錄,之後我們便可以在工作目錄裡任意地添加/刪除/修改文件,然後提交到本地的倉庫。
2. Add to Index。對於新添加的文件,我們要把它加到索引(Add to Index)裡面,文件的修改才會進入Git的跟蹤范圍。
3. Commit。對於已添加索引的文件, 我們只需要在要保存更改的時候,做一個“提交到本地倉庫”(Commit)的操作。那麼該文件的更改便在本地有歷史可尋。
4. Push/Pull。同步本地倉庫(Local Repository)和遠程倉庫(Remote Repository)的記錄。這裡用的動詞很形象,Push就是把本地倉庫的記錄推送到服務器上,而Pull就是把服務器的記錄拉到本地的倉庫。

這裡稍微解釋一下,由於Git是一個DVCS(Distributed Version Control System,分布式版本控制系統),不同於傳統的CVS/SVN版本系統那樣必須由一個中央服務器來管理所有的版本記錄,它實際上每一個倉庫都可獨立運作,因此而稱為分布式(Distributed)。Git Repos既可以是一個服務器的倉庫,也可以是一個本地的文件倉庫,可以存在與不同的文件夾裡或別人的電腦上,它可以被無限制地fork/clone產生分支,並記下來它們的上游(upstream)是源自哪一個分支,這樣當擁有相同upstream的倉庫之間,就可以共享版本信息以進行版本合並操作。

5. Merge(只在有沖突的時候)。有時候在我們想Push更新到服務器的時候,發現服務器上的版本已經有別人更新過了,即有新的其他人的Push記錄沒有下載到本地,這時需要我們先把別人的更改下載到本地,以確保自己是基於最新版提交的更改,才可以把本地的記錄Push上去。如果別人修改的部分跟自己的部分沒有重合,則應該可以自動地merge。

一種簡單的merge方法如Github Client是先對自己的版本拷一個備份到別的目錄,然後Discard Local Changes(即取消本地的更改,或稱Revert),然後把Remote的changes更新到本地,然後再在最新版的基礎上把自己的changes寫上去。

另一種辦法是在SourceTree裡提供更高級的處理矛盾的方式,就是你直接修改本地的文件為想要的最新狀態,然後把其標為已經Resolved(右鍵點擊文件->Resolve Conflicts->Mark as Resolved),再提交的時候就會認為這個conflict已經被merged了,可以成功commit。

如果在使用過程之中遇到問題,可先查看所用的Git客戶端的文檔。之後如果有需要的話,我再講解一下如何做tag/branch相關的操作,這就屬於進階的內容了。

GitHub 教程系列文章

通過GitHub創建個人技術博客圖文詳解 http://www.linuxidc.com/Linux/2015-02/114121.htm

GitHub 使用教程圖文詳解 http://www.linuxidc.com/Linux/2014-09/106230.htm

Git 標簽管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm

Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm

Git 遠程倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm

Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm

Git 服務器搭建與客戶端安裝 http://www.linuxidc.com/Linux/2014-05/101830.htm

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm

分享實用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm

GitHub 的詳細介紹:請點這裡
GitHub 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved