Git(背景 目的 原理 分支)

2021-10-08 04:06:58 字數 2089 閱讀 7946

目的原理

分支git是乙個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的專案版本管理,也是世界上最流行的版本控制系統

版本控制是一種在開發的過程中用於管理我們對檔案、目錄或工程等內容的修改歷史,方便產看歷史記錄,備份以便恢復以前的版本的軟體工程技術,簡單來說就是用於管理多人協同開發專案的技術

沒有進行版本控制或者版本控制本身缺乏正確的流程管理,在軟體開發中將會引入很多問題,如**冗餘、軟體過程的事務性、併發性、安全性等等

比如你肯定經歷過這樣的事情,甲方要求做乙個策劃,你改了很多版本甲方都不滿意,最後選擇了最開始的版本,這樣你就會有很多版本的文件出現,這就造成了冗餘

所有版本資訊倉庫全部同步到本地的每個使用者,這樣就可以在本地檢視所有版本歷史,可以離線 在本地提交,只需在聯網時push到相應的伺服器或其他使用者那裡。由於每個使用者那裡儲存的都是所有版本資料,只要乙個使用者的裝置就可以恢復

linus在建立linux之後,由於是開源,所以linus一人管理接收到的源**,這就給他造成了很大的麻煩,但他堅持不用一些市面上的集中式版本控制系統,因為他覺得這樣速度太慢,並且付費。最後由於壓力過大,選擇了乙個叫bitkeeper的分布式版本控制系統,並且是免費的,但是由於開源社群中一些大佬試圖破解bitkeeper的協議,導致被收回了免費使用權。於是,linus自己花了兩周的時間寫出了git,並迅速運用到linux上

git是世界上最先進的分布式版本控制系統,沒有**伺服器,每個人的電腦就是乙個完整的版本庫,工作的時候不需要聯網

其主要特點就是

適合分布式開發,強調個體

公共伺服器壓力和資料量都不會太大

速度快、靈活

任意兩個開發者之間可以很容易的解決衝突

離線工作

git本地有三個工作區域:工作目錄、暫存區、資源庫,如果有遠端的倉庫,那麼就是四個區域

workspace : 工作區,就是平時放專案**的地方

index/stage: 暫存區,用於臨時存放你的改動,事實上他只是乙個檔案,儲存即將提交到檔案列表資訊

repository:本地倉庫,就是安全存放資料的位置,這裡面有你提交到所有版本的資料。其中head指向最新放入倉庫的版本

remote:遠端倉庫,託管**的伺服器,可以簡單的認為是你專案組中的一台電腦用於遠端資料交換

1.在工作目錄中新增修改檔案

2.將需要進行版本管理的檔案放入暫存區域

3.將暫存區的檔案提交到git倉庫

常用命令

git branch        //列出本地所有分支

git branch -r //列出所有遠端分支

git branch [branch name] //新建乙個分支,但依然停留在當前分支

git checkout -b [branch] //新建乙個分支,並切換到該分支

git merge [branch] //合併指定分支到當前分支

git branch -d[branch name] //刪除分支

git push origin --delete [branch name]

git branch -dr [remote/branch] //刪除遠端分支

git 分支原理介紹

git的工作原理 git版本控制是通過儲存不同時間點的快照實現的。git在提交操作時,git會儲存乙個提交物件,該提交物件中會包含 git的分支,其實本質上是指向提交物件的可變指標。由於建立分支的高效性,所以,git鼓勵開發人員建立分支!首先在建立git專案的時候,缺省會建立master分支!這個m...

團隊專案的Git分支管理規範

團隊專案git分支管理規範 建立專案時 一般是服務型專案,工具型或輔助型專案可以簡單一些 會針對不同環境建立三個常設分支 develop 開發環境的穩定分支,公共開發環境基於該分支構建。pre release 測試環境的穩定分支,測試環境基於該分支構建。master 生產環境的穩定分支,生產環境基於...

git上傳分支的原理 Git學習小記之分支原理

介紹 如果想要熟練使用 git,沒有分支理念是絕對行不通的,在用 git 管理專案的時候,經常需要使用 commit 這個命令,那麼這個 commit 到底是指什麼呢?按照官方的解釋,這應該成為乙個物件,它包含著乙個指向暫存內容 被add的檔案 快照的指標,包含本次提交的附屬資訊,比如說作者等等,指...