1. 程式人生 > >11、git的介紹

11、git的介紹

學習目標:

1、瞭解Git的歷史

2、瞭解Git和SVN的主要區別

3、掌握Git的基本命令

學習過程:

一、git介紹

   linux系統我們之前已經講過了,是目前最流行的作業系統之一,這裡為什麼我們要說一下linux呢?因為git的作者也就是linux的作者——linus。沒錯確實是同一個。據說Linux的原始碼的版本管理一直是BitKeeper的協議的,但是使用開發Samba的Andrew試圖破解BitKeeper的協議。Bitkeeper 著作權所有者決定收回授權,核心開發團隊與其協商無果,Linux 核心開發社群正面臨嚴峻的挑戰,開源世界裡面又沒有其他的 SCM (Software Configuration Management)可滿足他們的分散式系統的需求。Linux 之父 Linus Torvalds決定開發一個新的版本控制系統。於是用了一週的時間,大牛就是大牛,就是一週的時間,Git 問世了。現在Git 已經成為實際上最流行的開源分散式版本控制系統。現在在github上面有成千上萬的專案。

git和svn的區別

二、SVN與Git的最主要的區別

   SVN和Git最大的區別就是:SVN是集中式版本控制系統,而Git是分散式的版本控制系統。

   SVN的版本庫是集中放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從中央伺服器哪裡得到最新的版本,然後幹活,幹完後,需要把自己做完的活推送到中央伺服器。集中式版本控制系統是必須聯網才能工作,如果在區域網還可以,頻寬夠大,速度夠快,如果在網際網路下,如果網速慢的話,就納悶了。而且如果中心庫有問題,那麼所有人的版本控制都會收到影響。

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

三、Git的安裝

1、window安裝

我們可使用使用下面兩個工具之一

https://tortoisegit.org/download/

https://git-for-windows.github.io/

在開始選單裡面找到 “Git –> Git Bash”,如下

attcontent/a0cf847e-8959-4205-b0c3-07c1ada0b711.png

2、linux的安裝

yum -y install git-core

安裝完成後可以輸入

git --version

$ git --version

git version 2.14.2.

3、git 初始化

git一定需要使用者和郵箱

git config --global user.name "liubao"

git config --global user.email "[email protected]"

4、基本概念

我們先來理解下Git 工作區、暫存區和版本庫概念

工作區:就是你在電腦裡能看到的目錄。

暫存區:英文叫stage, 或index。一般存放在 ".git目錄下" 下的index檔案(.git/index)中,所以我們把暫存區有時也叫作索引(index)。

版本庫:工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。

遠端庫:我們使用git的時候雖然可以不適用遠端庫,但是如果想和別人分享程式碼,還是必須的,而且一般都會使用。

下面這個圖展示了工作區、版本庫中的暫存區和版本庫之間的關係:

Git 建立倉庫

    你可以使用一個已經存在的目錄作為Git倉庫。Git 使用 git init 命令來初始化一個 Git 倉庫,Git 的很多命令都需要在 Git 的倉庫中執行,所以 git init 是使用 Git 的第一個命令。在執行完成 git init 命令後,Git 倉庫會生成一個 .git 目錄,該目錄包含了資源的所有元資料,其他的專案目錄保持不變(不像 SVN 會在每個子目錄生成 .svn 目錄,Git 只在倉庫的根目錄生成 .git 目錄)。

git init newrepo

   使用我們指定目錄作為Git倉庫。初始化後,會在 newrepo 目錄下會出現一個名為 .git 的目錄,所有 Git 需要的資料和資源都存放在這個目錄中。如果當前目錄下有幾個檔案想要納入版本控制,需要先用 

git add 

    命令告訴 Git 開始對這些檔案進行跟蹤,然後提交:

$ git add *.c

$ git add README

$ git commit -m '初始化專案版本'

    以上命令將目錄下以 .c 結尾及 README 檔案提交到倉庫中。

git clone

   我們使用 git clone 從現有 Git 倉庫中拷貝專案(類似 svn checkout)。克隆倉庫的命令格式為:

git clone <repo>

    如果我們需要克隆到指定的目錄,可以使用以下命令格式:

git clone <repo> <directory>

    引數說明:

    repo:Git 倉庫。

    directory:本地目錄。

    比如,要克隆 Ruby 語言的 Git 程式碼倉庫 Grit,可以用下面的命令:

$ git clone git://github.com/liubao/javadayup.git

    執行該命令後,會在當前目錄下建立一個名為grit的目錄,其中包含一個 .git 的目錄,用於儲存下載下來的所有版本記錄。

    如果要自己定義要新建的專案目錄名稱,可以在上面的命令末尾指定新的名字:

$ git clone git://github.com/liubao/javadayup.git mygrit