一 概述
Git是分散式版本控制系統。
# 在集中式版本控制系統中,版本庫集中在中央伺服器上,每次工作時都需要先從中央伺服器取得最新版本,修改後,再推送到中央伺服器,不僅受網路傳輸限制,而且一旦中央伺服器發生故障,版本庫可能全部遺失。而分散式版本控制系統,沒有中央伺服器,每一個工作電腦上都有一個完整的版本庫,任務操作都是基於本地文件,文件修改後,只需要推送給其他協作人即可,不僅擺脫了網路速度的限制,而且版本庫分佈在多台電腦上,更加安全。
Git本機運算分成三個區域:
工作區:本地倉庫中可見目錄均屬於工作區。
暫存區:在「.git」資料夾中的index檔案中。
版本庫:在「.git」資料夾中。
先執行「git add」指令將操作放到暫存區(Stage),再執行「git commit」將暫存區的檔案提交到版本庫。
快照這個概念來自於照相領域,是一種快速記錄資訊的方式,載體體積小,幾乎包含了關心的全部訊息,Git英語原文對此介紹如下:
Every time you commit, or save the state of your project in Git, it basically takes a picture of what all your files look like at that moment and stores a reference to that snapshot.
可以將快照理解為一種簡單的記錄物件當前狀態的方式,這種方式雖然簡單,但卻包含了物件的全部資訊。
Git記錄的不是版本間的差異,而是每個版本的快照。
版本是專案範疇的,代表了整個專案的狀態,其中一個檔案修改提交後,版本更新,其他未修改檔案的版本也隨之更新。
Git自動建立的主分支,只有該分支對其他使用者可見,其他分支對其他使用者不可見。
指向工作區檔案所屬分支與版本。
基於主幹的獨立發展脈絡,不影響主幹的發展。
基於一個已有分支的某個版本建立新的分支。
如果從共同的起點開始,兩個分支中只有一個分支A修改了文件,那麼將另一個分支的指標指向A分支當前的版本即可,合併後的檔案就是A目前版本。如果從共同的起點開始,兩個分支都修改了文件,那麼合併時會出現衝突,手動修整,然後將文件添加到緩衝區Add to Index,再commit。
一個分支合併了另一個分支,將產生一個新的版本。
標籤的作用與commit id 相同,都是用來標記版本,commit id採用40位元字符,難以記憶,因此產生了一種簡化版本標記的方式,即標籤,給需要特殊關注的版本自定義一個容易記憶的名字,以便於以後查詢。
#reset:退後到某一版本。
checkout:將工作區中的檔案轉換為某一個版本,選擇某個分支為活動分支。
這是我初次學習總結的東西,偏重Eclipse下的簡單操作,原理性東西太少,下面的連結講得比較詳細,可以深入學習:
以上是什麼是Git? git的常用操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!