一種分布式版本控制系統。
版本庫是集中存放在**伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從**伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給**伺服器。**伺服器就好比是乙個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館。
集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在區域網內還好,頻寬夠大,速度夠快,可如果在網際網路上,遇到網速慢的話,會把人憋死。
分布式版本控制系統與集中式版本控制系統有何不同呢?首先,分布式版本控制系統根本沒有「**伺服器」,每個人的電腦都是乙個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有乙個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了檔案a,你的同事也在他的電腦上改了檔案a,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。
和集中式版本控制系統相比,分布式版本控制系統的安全性要搞很多,因為每個人電腦裡都有完整的版本庫,某乙個人的電腦壞掉了不要緊,隨便從其他人那裡複製乙個就可以了。而集中式版本控制系統的**伺服器要是出了問題,所有人都無法幹活了。
在實際使用分布式版本系統的時候,其實很少在兩人之間的電腦上推送版本庫的修改,因為可不在乙個區域網內,兩台電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機。分布式版本控制系統通常也有一台充當「**伺服器」的電腦,但這個伺服器的作用僅僅是用來方便「交換」大家的修改,沒有它大家也一樣幹活,只是交換修改不方便而已。
當然,git的優勢不單是不必聯網這麼簡單,還有它極其強大的分支管理,把svn等遠遠拋在了後面。
安裝完成後,在開始選單裡找到git->git bash,乙個類似命令列視窗的東西,就說明git安裝成功!
安裝完成後,還需要最後一步設定,在命令列輸入:
$ git config --global user.name "your name"
$ git config --global user.email "your email"
注意git config
命令的--global
引數,用了這個引數,表示你這台機器行所有的git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的使用者名稱和email位址。
版本庫,又名倉庫,英文名repository,你可以簡單理解成乙個目錄,這個目錄裡的所有檔案都可以被git管理起來,每個檔案的修改、刪除,git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以「還原」。第一步,選擇乙個合適的地方,建立乙個空目錄:
$ mkdir myrepo
$ cd myrepo
$ pwd
/c/users/roger/myrepo
第二步,通過git init
命令把這個目錄變成git可以管理的倉庫:
$ git init
initialized empty git repository in c:/users/roger/myrepo/.git/
至此,倉庫建立完成且提示你是這是乙個空的倉庫(empty git repository)。當然,不一定必須在空目錄下建立git倉庫,選擇乙個已經有東西的目錄也是可以的。
不幸的是,microsoft的word格式是二進位制格式,因此,版本控制系統是沒法跟蹤word檔案的改動的。
因為文字是有編碼的,比如中文有常用的gbk編碼,日文有shift_jis編碼,如果沒有歷史遺留的問題,強烈建議使用標準的utf-8編碼,所有語言使用同一種編碼,既沒有衝突,又被所有平台所支援。把檔案新增到版本庫也是很簡單的事情。
首先,我們編寫乙個readme.txt
檔案,內容如下:
git is a version control system.
git is free software.
注意,該檔案一定要放在myrepo
目錄下(子目錄也行)。
接下來,把這個檔案放到git倉庫。這個過程只需要兩步。
第一步,用命令git add
告訴git,把檔案新增到倉庫:
$ git add readme.txt
執行上面的命令,沒有任何的顯示,這就對了!unix的哲學是「沒有訊息就是好訊息。」,說明新增成功。第二步,用命令
git commit
告訴git,把檔案提交到倉庫:
$ git commit -m "wrote a readme file"
[master (root-commit) dc767dc] wrote a readme file
1 file changed, 2 inserttions(+)
create mode 100644 readme.txt
git commit
命令中-m
後面輸入的是本次提交的說明,可以輸入任意內容,建議填寫有意義的內容,方便日後從歷史記錄裡快速找到改動記錄。
git commit
命令執行成功後會告訴你,1個檔案被改動(新新增的readme.txt檔案),插入了兩行內容(readme.txt有兩行內容)。
為什麼git新增檔案需要add,commit這麼兩步呢?因為commit
可以一次提交很多檔案,所以你可以多次add
不同的檔案。比如:
$ git add file1.txt
$ git add file2.txt
$ git add file3.txt
$ git commit -m "add 3 files."
詳細教程請戳這裡:git教程 - 廖雪峰的官方**
git快速入門
我們的 倉庫是用gitlab來管理的,要檢視自己能訪問哪些倉庫,以及倉庫的位址,請先熟悉一下gitlab系統的使用 gitlab入門 以下教程假設你已經知道如何在系統開啟終端視窗,並知道如何輸入shell命令。現在開啟終端,然後繼續。在提交 之前必須設定自己的使用者名稱和email git conf...
git快速入門
看到這裡,相信你已經能夠回滾遠端分支的版本了,那麼你也許會問了,回滾公共遠端分支和回滾自己的遠端分支有區別嗎?答案是,當然有區別啦。乙個顯而易見的問題 如果你回退公共遠端分支,把別人的提交給丟掉了怎麼辦?下面來分析 假如你的遠端master分支情況是這樣的 a1 a2 b1 其中a b分別代表兩個人...
快速入門git
1.1 git是什麼 git是一種版本控制器.更直白說,團隊開發時,管理 用的軟體.面試時,容易被問到的乙個東西.1.2 安裝 ubuntu,debian sudo apt get install gitcentions,redhat系統 yum install git1.3報家門 人在江湖,豈能沒...