Git版本管理介紹(一)

Young_618發表於2018-07-28

集中式版本控制系統

CVS及SVN都是集中式的版本控制系統,版本庫是集中存放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從中央伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給中央伺服器。集中式版本控制系統最大的毛病就是必須聯網才能工作,若控制系統的中央伺服器出了問題,所有人就都沒法幹活了。

分散式版本控制系統

Git是分散式版本控制系統,分散式版本控制系統根本沒有“中央伺服器”,每個人的電腦上都是一個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了檔案A,你的同事也在他的電腦上改了檔案A,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

分散式版本控制系統的安全性更高,因為每個人電腦裡都有完整的版本庫,某一個人的電腦壞掉了,從其他人那裡複製一個就可以了。在實際使用分散式版本控制系統的時候,很少在兩人之間的電腦上推送版本庫的修改,通常有一臺充當“中央伺服器”的電腦,但這個伺服器的作用僅僅是用來方便“交換”大家的修改,沒有它大家也一樣幹活,只是交換修改不方便而已。

文字檔案v.s.圖片視訊

所有的版本控制系統,其實只能跟蹤文字檔案的改動,比如TXT檔案,網頁,所有的程式程式碼等等,Git也不例外。版本控制系統可以告訴你每次的改動,比如在第5行加了一個單詞“Linux”,在第8行刪了一個單詞“Windows”。而圖片、視訊這些二進位制檔案,雖然也能由版本控制系統管理,但沒法跟蹤檔案的變化,只能把二進位制檔案每次改動串起來,也就是隻知道圖片從100KB改成了120KB,但到底改了啥,版本控制系統不知道,也沒法知道。

有關Git命令介紹,參考https://git-scm.com/docs。下面介紹在本地工作區建立一個Git版本庫的基本操作。

git config命令,配置機器id資訊,global引數

Git是分散式版本控制系統,每個機器都必須登記自己的相關id資訊。git config命令用了global引數,表示所配置機器上所有的Git倉庫都使用相同的配置,當然也可以對某個倉庫指定不同的使用者名稱和Email地址。

YYwhdeMacBook-Pro:~ yywh$ ls
Desktop			Music			anaconda3
Documents		Pictures		eclipse
Downloads		Public			eclipse-workspace
IdeaProjects		PycharmProjects		workspace
Library			SELF_USE_LEARN		
YYwhdeMacBook-Pro:~ yywh$ git config --global user.name "Yu Yg"
YYwhdeMacBook-Pro:~ yywh$ git config --global user.email "898486@qq.com"

git init命令,把“建立的版本庫/倉庫目錄”變成“Git可管理的倉庫”

YYwhdeMacBook-Pro:~ yywh$ mkdir GITWORKSPACE
YYwhdeMacBook-Pro:~ yywh$ cd GITWORKSPACE/
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ git init   #
Initialized empty Git repository in /Users/yywh/GITWORKSPACE/.git/
YYwhdeMacBook-Pro:GITWORKSPACE yywh$ ls -ah
.	..	.git

從遠處倉庫clone下來的一個專案就是一個版本庫;本地工作區資料夾 地位 等同於 遠端倉庫主機origin;本地工作區資料夾(遠端倉庫主機origin)裡 都可以包含 多個專案(就是多個版本庫);每個版本庫 裡面 都至少有一個master分支 和 stage分支(也就是暫存區),可以進入專案目錄資料夾下,建立你自己的分支;在本地clone專案時,pwd目錄可以只是一個普通資料夾,沒必要是一個git init的版本庫!

相關文章