一、分佈式版本控制系統Git簡介
Git是一個開源的分佈式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。Git是 Linus Torvalds爲了幫助管理 Linux內核開發而開發的一個開放源碼的版本控制軟件。
二、Git的使用
2.1、Git的安裝
在Linux 系統下可以輸入Git命令來查看當前系統有沒有安裝Git如果沒有的話可以通過sudo apt-get install git 安裝git。當Git安裝完成以後進入最後一步設置。因爲Git是分佈式版本控制系統,所以,每個機器都必須自報家門:你的名字和Email地址。配置命令爲:
$git config --global user.name"Your Name"
$git config --global user. email"[email protected]"
注意git config命令的--global參數,用了這個參數,表示你這臺機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的用戶名和Email地址。
2.2、創建Git管理的版本庫
版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄裏面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。首先進入一個要創建版本庫的目錄,在使用git init。
$ git init
Initialized empty
Git repository
in /
Users/michael/learngit/.git/
2.3、查看版本庫的狀態
命令可以讓我們時刻掌握倉庫當前的狀態,我們可以通過這個命令知道當前哪些文件被修改,哪些文件加入到暫存區、哪些文件被提交到工作區。
$ git status
2.4、Git的add和commit
$ git add readme.txt
git add 命令是爲了把修改文件加入到暫存區。
$ git commit -m
"append GPL"
git commit 命令是把暫存區的文件加入到工作區。
2.5、查看提交日誌
在實際工作中,我們腦子裏怎麼可能記得一個幾千行的文件每次都改了什麼內容,不然要版本控制系統幹什麼。版本控制系統肯定有某個命令可以告訴我們歷史記錄,在Git中,我們用git log命令查看:
$ git log
commit 3628164fb26d48395383f8f31179f24e0882e1e0
Author: Michael Liao
<[email protected]>
Date: Tue Aug 20 15:11:49 2013 +0800
append GPL
commit ea34578d5496d7dd233c827ed32a8cd576c5ee85
Author: Michael Liao
<[email protected]>
Date: Tue Aug 20 14:53:12 2013 +0800
add distributed
commit cb926e7ea50ad11b8f9e909c05226233bf755030
Author: Michael Liao
<[email protected]>
Date: Mon Aug 19 17:51:55 2013 +0800
wrote a readme file
2.6、版本回退
git checkout -- file;撤銷對工作區修改;這個命令是以最新的存儲時間節點(add和commit)爲參照,覆蓋工作區對應文件file;這個命令改變的是工作區
git reset HEAD -- file;清空add命令向暫存區提交的關於file文件的修改(Ustage);這個命令僅改變暫存區,並不改變工作區,這意味着在無任何其他操作的情況下,工作區中的實際文件同該命令運行之前無任何變化
2.7、添加遠程倉庫Github
1、在遠程倉庫加入本地的ssh的公鑰
因爲本地區和遠程去使用的是ssh安全協議通信。
$ ssh-keygen -t rsa -C [email protected](任意郵箱即可)
2、把本地倉庫與遠程倉庫關聯
$ git remote add origin [email protected]:michaelliao/learngit.git(遠程代碼倉庫的地址)
其中上述命令的地址爲Github遠程庫的地址。
3、 把本地庫內容推送到遠程庫
Git push –u origin master
把本地庫內容推送到origin所指向庫的master分支。由於遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。以後再要推送直接使用
Git push origin master
4、 從遠程庫拉取內容
分別有命令git clone 和git pull
clone是本地沒有repository時,將遠程repository整個下載過來,此時不但下載下來內容,而且在本地創建了一個版本控制的倉庫,並且自動綁定了master分支。
pull是本地有repository時,將遠程repository裏新的commit數據(如有的話)下載過來,並且與本地代碼merge。