Git&GitHub(一)

版本控制

版本控制應該具備的功能

  • 協同修改
    • 多人並行不悖的修改服務器端的同一個文件。
  • 數據備份
    • 不僅保存目錄和文件的當前狀態,還能夠保存每一個提交過的歷史狀態。
  • 版本管理
    • 在保存每一個版本的文件信息的時候要做到不保存重複數據,以節約存儲空
      間,提高運行效率。這方面 SVN 採用的是增量式管理的方式,而 Git 採取了文
      件系統快照的方式。
  • 權限控制
    • 對團隊中參與開發的人員進行權限控制。
    • 對團隊外開發者貢獻的代碼進行審覈——Git 獨有。
  • 歷史記錄
    • 查看修改人、修改時間、修改內容、日誌信息。
    • 將本地文件恢復到某一個歷史狀態。
  • 分支管理
    • 允許開發團隊在工作過程中多條生產線同時推進任務,進一步提高效率。

集中式版本控制工具和分佈式版本控制工具

  • 集中式版本控制工具

主要是客戶端和服務器來進行交互,有單點故障的風險;
在這裏插入圖片描述

  • 分佈式版本控制工具
    在本地就能完成完整的版本控制,本地上有完整的提交歷史,提交過的所有歷史版本在本地都有存儲,任何的一個人都可以把數據傳給別人,這樣的話,就很好的避免了單點故障的風險;例如如果張三的數據丟失了,那麼拿李四的數據來進行恢復就可以了;
    這樣的話,能夠避免單點故障;一般都會有一個本地庫和一個遠程庫;
    在這裏插入圖片描述

Git的簡介

Git的官網

Git的官網

Git 的優勢

  • 大部分操作在本地完成,不需要聯網
  • 完整性保證
  • 儘可能添加數據而不是刪除或修改數據
  • 分支操作非常快捷流暢
  • 與 Linux 命令全面兼容

Git的安裝

  • 安裝到一個非中文且沒有空格的目錄下:
    在這裏插入圖片描述

  • 使用了默認的設置
    在這裏插入圖片描述

  • 使用Vim的本文編輯器
    在這裏插入圖片描述

  • 這裏我是使用了可以使用windows命令來進行操作的選項
    在這裏插入圖片描述

  • 使用了默認值
    在這裏插入圖片描述

  • 行末的換行符,這裏使用了默認的方式
    在這裏插入圖片描述

  • 執行Git命令時的默認終端,這裏選用了默認值
    在這裏插入圖片描述

  • 同樣這裏也是使用了默認值
    在這裏插入圖片描述

  • 此時爲安裝的過程:
    在這裏插入圖片描述

  • 如出現了下面的情況時,則表示Git安裝成功
    在這裏插入圖片描述
    以及:
    在這裏插入圖片描述

Git在本地的結構

在這裏插入圖片描述

Git和代碼託管中心

代碼託管中心的任務:維護遠程庫

  • 局域網環境下
    • GitLab 服務器
  • 外網環境下
    • GitHub
    • 碼雲

本地庫和遠程庫

團隊內部協作

首先項目經理在本地上創建了一個本地庫,爲了把代碼託管到遠程代碼託管中心,我們在代碼託管中心創建了一個遠程庫,遠程庫剛創建好是空的,只有本地庫是有內容的,文件和目錄現在還都在本地庫當中(包括歷史記錄),此時,我們就需要做一個推送(push)的操作,把本地庫當中的內容推送到遠程庫當中去;而開發人員需要把遠程庫當中的內容給克隆下來,克隆的這個操作不光是下載遠程庫裏面的東西,還會把本地庫給初始化好,然後開發人員把改好的代碼提交到本地庫,然後再推送到遠程庫;開發人員直接推送給遠程庫是推送不了的,首先開發人員得加入團隊,它加入團隊就有了權限了;項目經理再把修改後的代碼給拉取(pull)下來!
在這裏插入圖片描述

跨團隊協作

在開發的時候,有時候會有這樣的一個場景:項目經理給開發人員分配了一個任務,但是這個開發人員做不了,但是這個開發人員的一個好朋友可以做,此時這個開發人員就可以尋求這個好朋友的幫助,但是這個好朋友不是這個公司的員工,這個好朋友就可以把這個遠程庫給fork一份,給複製一份,此時這個遠程庫爲這個好朋友的遠程庫,然後這個好朋友把自己的遠程庫給克隆下來,然後做一些修改,然後再推送到自己的遠程庫當中去,這個好朋友會去做一個拉取請求,這個項目經理來去做一個審覈,如果審覈通過了的話,那麼就會在線去做一個merge合併的操作;那麼此時項目經理的遠程庫當中就有了這位好朋友修改後的代碼了;然後,項目經理再把遠程庫當中修改的代碼給拉取下來:
在這裏插入圖片描述

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