Git&碼雲&TortoiseGit系列學習

  • [一、Git總體介紹]
    本章導航----Git總體學習思惟導圖
    uploading-image-869414.pnggit

  • [二、版本控制簡介]
    本章導航----版本控制思惟導圖
    uploading-image-495417.png程序員

    • [版本控制簡介]
      版本控制是維護項目/工程的標準作法,能追蹤項目/工程從創建到完成的過程,是一種記錄若干文件內容變化的方法,便於查看項目文件內容變化以及版本修訂狀況的系統。github

    • [爲何要學習版本控制]
      a:備份多個版本,浪費存儲空間,花費時間長。
      b:難以恢復至之前的歷史版本,容易引起BUG,解決代碼衝突困難。
      c:難於追溯問題代碼的修改人和修改時間、修改內容、日誌信息。
      d:項目升級,版本發佈困難。
      e:沒法進行權限控制。 好比 測試人員:只讀;開發人員:模塊權限。
      f:開發團隊在工做過程當中沒法多條生產線同時推動任務,效率慢等。安全

    • [經常使用的版本控制工具]
      集中式版本控制工具表明:SVN(所謂的集中式就是文件都集中保存在一臺服務器上)
      分佈式版本控制工具表明:Git(所謂的分佈式就是文件保存在多臺服務器上)服務器

  • [三、Git與SVN比較]
    本章導航----Git與SVN思惟導圖
    uploading-image-665425.png分佈式

    • [Git-與SVN記錄文件的差別]
      Git和其餘版本控制系統的主要差異在於,Git 只關心文件的總體是否發生變化。而SVN這類版本控制系統則只關心文件內容的具體差別。SVN這類系統每次記錄有哪些文件做了更新,以及都更新了哪些行的什麼內容。然而 Git 並不保存這些先後變化的差別數據。實際上,Git更像是把 變化的文件 做一個快照後,記錄在一個微型的文件系統中。每次提交更新時,它會縱覽一遍全部文件的指紋信息(Hash值)並對文件做一快照,而後保存一個指向此次快照的索引。爲提升性能,若文件沒有變化,Git 不會再次保存,而只對上次保存的快照做一連接。svn

    • [Git-優勢]
      a:分佈式,強調個體
      b:公共服務器壓力和數據量都不會太大
      c:離線工做,每一個人的本地倉庫,大部分操做在本地庫完成,不須要聯網(SVN作不到)
      d:分支操做很是快捷流暢(重點介紹)
      e:能夠吃後悔藥, 儘量添加數據而不是刪除或修改數據(刪除或修改不容易恢復,而每次添加一個版本,歷史版本都有)
      f:速度快、靈活, 有能力高效管理相似 Linux
      g:內核同樣的超大規模項目(速度和數據量)工具

    • [SVN-簡介]
      SVN 屬於集中式版本管理控制系統,服務器中保存了全部文件的不一樣版本,而協同工做人員經過鏈接svn服務器,提取出最新的文件,獲取提交更新。Subversion 項目的初衷是爲了替換當年開源社區最爲流行的版本控制軟件CVS,在CVS的功能的基礎上有不少的提高同時也能較好的解決CVS系統的一些不足。性能

    • [SVN-缺點]
      集中管理方式在必定程度上看到其餘開發人員在幹什麼,而管理員也能夠很輕鬆掌握每一個人的開發權限。可是相較於其優勢而言,集中式版本控制工具缺點很明顯:
      a:服務器單點故障;
      b:必須鏈接在SVN服務器上,不然不能提交,對比,還原等;學習

  • [四、Git本地工做區域]
    本章導航----Git本地工做區域思惟導圖
    uploading-image-695183.png

    • [直奔主題]
      對於任何一個文件,在 Git 內都只有三種區域:工做區,暫存區和本地倉庫
      工做區:表示新增或修改了某個文件,但尚未提交保存;
      暫存區:表示把已新增或修改的文件,放在下次提交時要保存的清單中;
      本地倉庫:表示文件已經被安全地保存在本地倉庫;
  • [五、Git與代碼託管平臺]
    本章導航-----Git與代碼託管平臺思惟導圖
    uploading-image-51308.png

    • [Git與GitHub比較]
      a:Git:是一個版本管理工具 , 只在本地使用的一個版本管理工具,其做用就是可讓你更好的管理你的程序,好比你原來提交過的內容,後面雖然修改過,可是經過git這個工具,能夠把你原來提交的內容重現出來,這樣對於你後來才意識到的一些錯誤進行更改,進行還原.

    b:GitHub:是一個基於Git的遠程代碼託管平臺(網站),能夠在github上創建一個遠程庫,能夠將本地庫的代碼提交到遠程庫,這樣你的每次提交,別人也均可以看到你的代碼,同時別人也能夠幫你修改你的代碼,這種開源的方式很是方便程序員之間的交流和學習.

    • [代碼託管平臺]
      局域網環境:GitLab(可自行搭建)
      外網環境:GitHub,碼雲

    • [本地庫和遠程庫]
      a:團隊內部協做開發

    b:遠程跨團隊協做開發

相關文章
相關標籤/搜索