【環境搭建】搭建並使用github協同開發環境

    因爲一些朋友們想用github做項目託管,所以我簡單總結了一下github相關的基礎知識點,在這裏分享給各位。

    本人原創手打+翻譯,希望尊重版權轉載註明出處,如有錯誤還望指出。

    歡迎打賞點贊~

目錄

1. 什麼是github?

倉庫(Repositories)

分支(branches)

commits(修改)

pull/push(本地/遠程同步)

merge(合併)

2. github的基礎操作(網頁操作)

建立一個git倉庫:

配置倉庫:

3. github基礎操作(本地指令操作)

git賬戶配置(git config)

初始化及配置git遠程倉庫(git init和git remote add)

拉取遠程文件到本地(git pull)

新建和操作一個分支(git branch)

git常用指令和技巧


1. 什麼是github?

    github是一個用於版本管理和團隊協作的平臺。它有幾個很重要的基本概念:

  • 倉庫(Repositories)

  倉庫用來管理一個工程,假設現在我們有一個機器人工程,有控制機器人輪子的,有控制手臂的,有控制聲音的代碼...這些代碼都有不同的功能,可能在一個項目中,每個人都要自己來完成自己負責的模塊。很多項目管理者就會做一個U盤,在U盤裏放很多個文件夾,讓每個人把自己的代碼拷到這個U盤的某個文件夾中,然後如果想讓這個機器人動起來,就將這個U盤插到機器人上,然後啓動各個文件夾中的內容。這個“U盤”,在github上就稱爲倉庫。(Repositories)

  • 分支(branches)

    我們現在還是拿那個機器人和U盤舉例子,現在大家每個人都把自己的模塊改完了,但是插到機器人上,發現機器人一個輪子不轉,負責機器人運動模塊的員工張三一拍腦袋:“哎呀,輪子的程序我寫錯了...”。

    寫錯了,那就修改吧,然後把項目主管把U盤拔下來給張三,因爲U盤只有一個,所以其他人只能停下手裏的活看着張三改。

    項目主管爲了解決這個問題,就買了很多U盤;並且給他們起了名字,第一塊U盤叫master,第二塊叫“Zhang san”。當出現問題時,主管將master這塊U盤上的所有內容拷貝到Zhang san這塊U盤上,跟張三說:“你拿這塊盤改吧,這樣不耽誤其他人改別的。”

    這塊名爲Zhang san的U盤,就叫做分支(Branch)。

  • commits(修改)

    張三的性格比較內向,一直不吭聲的踏實幹活,很快就把問題解決了,但是張三改了他的部分後,李四負責的部分突然就出現了問題。李四找張三問是什麼情況,張三說他記性不好,忘了他改了哪個部分了...

    後來爲了避免這種員工之間相互甩鍋的情況,經理強制每一個員工在對代碼做出修改後,必須寫明改了哪裏,同時蓋上簽名章才能拷貝到U盤裏。這個修改--說明改動--寫入U盤的過程,就叫做commit。

  • pull/push(本地/遠程同步)

    因爲協同開發後程序會被傳到雲端git服務器,而一般的編程都是本地運行,所以我們使用push/pull將本地與雲端進行同步,這個過程如下圖:

    

  • merge(合併)

    張三把他那塊名爲Zhang san的U盤插入機器人,機器人完美運行了;主管把張三U盤中的內容拷貝到第一塊U盤(merge),並且把這塊U盤貼上標籤,將盤裏的軟件賣到世界各地。

    簡單來講,一個github的工程是這樣工作的:

    

 

2. github的基礎操作(網頁操作)

  • 建立一個git倉庫:

    首先註冊一個github賬號並登陸,在登陸頁面的右上角有你自己的頭像,點擊頭像,進到Repositories;然後在repositories中點擊“New”,新建一個倉庫,並在倉庫中配置倉庫屬性。

  • 配置倉庫:

3. github基礎操作(本地指令操作)

  • git賬戶配置(git config)

    git config用於配置git賬戶相關內容,git配置一共分爲三個等級:

  1. 目錄級別,配置方法爲: git config --local user.name=[你的賬戶名]
  2. 全局變量級別: git config --global user.name/user.email=...
  3. 系統級別:git config --system ...

    在這其中,配置的優先級爲目錄--->全局---->系統,也就是說,你在目錄裏配置了用戶賬戶,那麼全局和系統中配置的內容失效;如果同時配置了全局和系統,那麼全局的賬戶有效,系統的無效。

    使用git config --local -l 可以查看當前配置的賬戶信息。

  • 初始化及配置git遠程倉庫(git init和git remote add)

    我們首先在本地新建一個文件夾起一個跟工程相符的名字,例如:workspace;我們使用控制檯cd進入這個文件夾,然後輸入:

    git init

    這樣,我們就初始化了一個git環境,同時,工程文件夾下會自動生成一個.git文件(隱藏文件),如下圖:

    

    在初始化後,對遠程倉庫進行配置,配置的過程如下:

  1. git remote add [本地倉庫名] [遠程倉庫的github地址,一般項目管理員會給你]
  2. 使用git remote 以及git remote get-url [本地倉庫名] 檢查遠程倉庫是否配置好

    

  • 拉取遠程文件到本地(git pull)

    我們初始化了git環境後,就需要將雲端倉庫裏的軟件架構首先拷貝到本地才能夠進行開發(如果你是架構師則不需要執行這個步驟,而是在工作空間裏設計和編寫新的文件)。

    將遠程文件拷貝到本地的方法有很多,比較常見的:

    git clone [git地址],這個方法是直接將遠程軟件架構拷貝到本地

    git pull [git地址] [雲端branch]:[本地branch],這個是以項目拉取得方式將文件“拉”到本地,方便以後修改完代碼後“推”到雲端git服務器。

    注意:對於git pull,需要輸入github的賬號和密碼。

  • 新建和操作一個分支(git branch)

    在協同開發中,新建一個分支很重要,要不然很容易造成你改你的,他改他的,最後改亂套的局面。爲了對分支(branch)進行說明,我們先說明以下幾個概念:

  • 雲服務器是不會自動給你設置分支的,除非你在網頁上,或者通過本地push一個新的分支
  • 我們在新建一個項目的時候,首先要從雲服務器上pull一個分支下來(master是主分支),具體指令如下:

    

  • 這樣,我們就在本地新開了一個分支,如下圖所示:
  • 開發項目的過程中儘量不要在主分支上進行修改,當我們pull一個分支下來後,我們使用git checkout [你自己的分支]:

    

    現在,我們就已經切換到了v5這個分支下;我們現在可以打開工程,使用IDE或者其他編輯器修改代碼,例如我在工程中修改了readme.md文件:

    

    修改後,我們使用git status看一下發生了什麼:

    

    可以看到git自動檢測出我們修改了readme這個文件。下面,我們使用git add . 以及git commit來確認本次修改:

    

    然後我們使用git push,把它推送到雲端:

    

    現在我們去雲端網頁看看,雲端已經出現了v5這個branch

  • 整體流程如下圖:

  •  

      在添加,修改或刪除某個文件後,我們往往忘了改的是哪個,是否已經提交了等等,這個時候我們可以使用git status查看代碼狀態,例如我在我的工作空間中修改了一個文件(env_config),刪除了一個文件(install.sh)。現在我們輸入git status,顯示如下:

    然後我進行一次git add -A(重新載入文件,包括刪除掉的文件),這時顯示以下文件已經被修改進了HEAD裏:

  • git常用指令和技巧

  1. git remote:遠程倉庫配置
  2. git pull 【倉庫名】 【遠程分支】:【本地分支】拉取遠程branch到本地
  3. git branch XXX 新建一個本地分支
  4. git branch checkout XXX 進入某個分支
  5. git add .添加全部文件到緩衝區(意味着使用commit和push所有文件都將被同步)
  6. git add -A 添加全部文件到緩衝區(包括刪除的文件)
  7. git commit -m '[說明]' 提交一次修改(本地有效)
  8. git push 【倉庫名】 【遠程分支】:【本地分支】 將本地分支推送到遠程分支上

---

參考資料:

https://www.jianshu.com/p/1a35929311cb

https://guides.github.com/activities/hello-world/

https://www.cnblogs.com/fireporsche/p/9359130.html

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