1. 程式人生 > >【Github】github是什麼?github入門

【Github】github是什麼?github入門

Github解釋:gitHub是一個面向開源及私有軟體專案的託管平臺,因為只支援git 作為唯一的版本庫格式進行託管,故名gitHub。

注:本文章僅幫助讀者入門github

正文:
掌握github的使用的關鍵在於理解它的一些關鍵概念,理解了之後其他都不是問題,下面一一介紹;
1、倉庫 repository
 說明:一個倉庫一般用於存放一個專案,可以包含檔案和各種格式的檔案。一般也會有一個專案README檔案(自述檔案,用來儲存你想描述的關於這個倉庫的資訊,可選),建立倉庫時可以選擇是否公開!
2、分支 branch
 說明:分支是一次性處理不同版本倉庫的一種方式。預設一個倉庫有一個主分支;我們使用多個分支來測試和編輯,然後提交給主分支。
 當我們建立子分支時,你只是給主分支做了一個快照,或者說你生成了主分支的一個即時副本而已。當你處理分支時,如果有其他人正在修改主分支,你可以儲存這些修改。圖解:
這裡寫圖片描述


解釋:
   1、有一個主分支
   2、建立了一個子分支叫做 ‘feature’  
   3、有一個修改子分支內容的“階段”,修改完後,再合併到主分支上去

3、有時我們會遇到儲存一個檔案的不同版本,如下:
  —–伺服器配置(初始).txt
  —–伺服器配置(2017-10-2).txt
  —–伺服器配置(2017-10-20).txt
 是的,github的主要作用是物件的版本控制與管理,所謂的版本其實就是指的這個概念。物件就是你想在github上儲存的檔案!

4、建立子分支
這裡寫圖片描述
 1、進入你建立好的倉庫
 2、選擇做左上角處 “branch:master”,下拉輸入子分支名稱,點選建立分支即可
 3、現在你有2個分支了,主分支和一個子分支,看起來他們的內容是一樣的,但很快就不同了;你將要做一些修改在子分支上

5、修改和提交
 說明:在github上,”儲存修改的內容“這個操作被稱為 ‘commit’(提交),每一次‘commit’都有對應的“提交備註”,這個“備註”就像我們平常理解的那樣,是為了說明為什麼要提交這次修改。
 如果你的倉庫是公開的,其他人就可以看見你的每一次提交修改的內容和修改的理由(如果你做了備註的話)。
 修改自述檔案的操作:
   1、點選README.md檔案
這裡寫圖片描述
 2、點選右上角的鉛筆圖示來修改檔案
這裡寫圖片描述
 3、新增一些內容在輸入框內,然後在最下面提交
這裡寫圖片描述
注意:在按鈕的上方有兩個選項,第一個是直接提交到主分支,第二個是提交到一個新的子分支裡面,提交到主分支代表直接修改主分支的內容!

6、發起一個更新請求(open a pull Request)
 說明:現在你的子分支相對主分支已經有了一些改變,你可以把子分支修改的內容新增到主分支上,也就是使你的修改在主分支上生效!如果你是路人(非主分支擁有者),你能夠做的是發起一個更新請求(github上稱作open a pull Request,直譯過來是不便於理解的);
 在發起更新請求的過程中,這個pull requests會自動檢查你當前的子分支和你想要合成到的主分支(也可以是其他子分支)中的不同之處(增刪改的地方)並展示給你看到;
 發起的時候,你可以向要提交分支的擁有者開啟一個對話,直到你發起的更新請求生效或被拒絕。
 這裡有一段過程:
 提交更新請求–>與(主)分支擁有者進行溝通–>(主)分支擁有者同意你的更新請求—>更新請求在(主)分支上生效
 即如下面的圖
這裡寫圖片描述
上圖中有兩個文字框可以編輯,第一個小框是寫本次發起的主題,第二個大框寫本次發起的備註,還可以新增表情。
發起後應該會來到下圖頁面:
這裡寫圖片描述

點選圖中箭頭處的pull requests,到下圖頁面:
這裡寫圖片描述

箭頭處顯示的是所有更新請求(你發起的和別人發起的,針對於這個目的分支的)!
如果你是目的分支主人,比如你收到了別人發起的更新請求,如圖中第二個箭頭,你點進去就可以看到它的修改內容,然後決定是否把他的更新請求合成到你的分支上!一旦點選合成,從整個github概念上來講,就表示:你生成了你的一個分支(或者是專案),是公開性質的,你歡迎別人對你的分支(專案)進行修改(bug修復、功能新增),然後就有人提交了更新請求,內容是修復你的(分支)專案中存在的一個bug,你很開心,並讓他的修改在你的分支(專案)中生效!
  所以,github從角色上來講,稱作為社群更符合它的身份,版本管理平臺/程式碼託管平臺只是它的基本功能,當然也是核心功能!
理解了github的作用和功能、定位,你很快就能上手!有時它也會成為HR的一個重要提問點,So,熟練使用它將使你以後的程式設計生涯之路更加平坦,也能增添更多精彩和樂趣!