Git詳細教程(1)---我的Git的基本使用

分佈式版本控制系統--git

一. 什麼是Git

1. Git是什麼

Git是目前世界上最早進的分佈式版本控制系統(沒有之一)。css

實際上版本控制系統有以下幾個:html

1) CVSgit

2)  SVNwindows

3) Gitbash

這個概念中有兩個疑問:編輯器

1. 什麼是版本控制分佈式

2.什麼是分佈式?工具

2. 爲何須要Git

你們熟悉的一個場景:論文學習

相似的場景,在軟件開發中更爲廣泛。網站

分組完成項目的時候

1)多人協做,是如何完成的?

2)開發本身的任務的時候,從寫第一行代碼開始到整個結束,有沒有來回修改?

 

如何來解決這些問題呢?

早期,在項目規模尚未那麼大的時候,你們制定一些規則,手動解決就行。

隨着軟件和項目規模的增大,這種手動方式,效率過低,問題太多,不能知足開發的需求。

 

須要有相應的工具來解決 --- 因而就出現了 版本控制系統。

1)CVS,功能比較弱,如今不多使用

2)SVN,功能比較完善,使用比較多

3)Git,功能最強大的,也是最受歡迎的。

 

因此,版本控制能夠幫助咱們實現兩件事情:

1)自動記錄每次的修改,而且能夠方便的切換到任一版本

2)能夠完成多人協做開發

3.GitGitHub有何區別

Git,是一個版本控制系統,其實是一個工具,大多數都是基於命令行的。

GitHub,是一個使用Git做爲版本控制的託管代碼的網站,平臺

重點在於學習Git自己。

二.快速入門

1.安裝Git

Git在多個操做系統均有相應的安裝包。

使用windows系統。

仍是一個典型的windows軟件的安裝

官網:https://git-scm.com/downloads/

這個表示加入了windowspath變量,意味着能夠在cmd窗口中使用。

安裝完成以後,咱們能夠在任意目錄下,點擊鼠標右鍵,彈出右鍵菜單,有兩個選項:

1.Git GUI Here

2.Git bash Here

Git GUI here,其實就是一個可視化的界面,使用鼠標就能夠完成相應操做。以下:

 

Git bash Here

命令行窗口

2.使用流程

基本的使用流程以下:

1)初始化一個Git倉庫(git init

2)設置用戶名和郵箱

3)添加文件到倉庫(git add 文件名1 文件名2

4) 提交 git commit -m 說明文字)

5)查看版本 git log

6)回退 git reset --hard HEAD^/commit_id

 

(1).初始化一個Git倉庫(git init

首先,須要指定咱們的項目目錄,好比此處放在project目錄下,

使用git init 來初始化一個Git倉庫。

在當前目錄下打開 git bash 窗口,輸入git init命令,以下:

 

repository: 倉庫

相應的,會在當前目錄下,建立一個隱藏的.git目錄,

咱們在開發的時候,是不能去動這個目錄的。

以下:

 

 

(2). 設置用戶名和郵箱

 

使用

git config user.name 用戶名

git config  user.email 郵箱

(3). 添加文件到倉庫(git add 文件名1 文件名2

 

咱們須要在project目錄下,開始開發。

使用 git add 文件名,將其添加到版本庫

 

 

(4). 提交 git commit -m 說明文字)

 

使用git add只是將其添加到git 的暫存區,須要使用git commit進行提交,同時必需要加上說明文字。

 

(5). 查看版本 git log

 

接下來,須要重複3~5

好比,我新建一個base.css文件,將其引入到 index.html中,因此,又須要add

 

再次commit

(6).回退 git reset --hard HEAD^/commit_id

第三天開發,發現須要回到第一個版本

使用 git reset --hard HEAD^會退到上一個版本。

 

 

我又後悔,須要再回到第二個版本。這是當前版本的將來版本,必須使用commit_idreset

 

回退以下:

此時,就已經切換到第二個版本。

三.Git基本概念及原理

1.基本概念

在使用git的時候,一般會提到以下幾個術語:

1)工做區

2)版本庫

3) 暫存區

4)分支

 

當咱們使用git init命令初始化倉庫的時候,建立一個隱藏的目錄---- .git

這個文件夾將咱們的項目目錄一分爲二:

1.版本庫(倉庫)

2.工做區

1)凡是在.git目錄中的,都是屬於版本庫的

2)凡是在.git目錄以外的,都是屬於工做區的。

 

咱們的項目目錄

一旦咱們建立了版本庫,在開發的時候,就不能對版本庫目錄作任何的操做。

咱們開發的操做都是在工做區進行的,新建、修改、刪除都是在工做區進行的。

也就是說,咱們的常規開發都是在工做區進行的。

對於工做區的內容,其實就是咱們常規的和項目相關的文件和文件夾。

對於版本庫,還須要進一步的去看看裏面有什麼東西。

版本庫,又一分爲二:

1) 暫存區

2)主分支

暫存區:stage,臨時保存文件的一個區域,就至關因而一箇中轉站。工做區中的任何內容都是須要經過暫存區,才能提交真正的分支上去。

主分支:master,它纔是保存各個版本的地方

 

2.基本原理

理解Git的關鍵在於 暫存區 的理解。

前面咱們使用Git提交版本的時候,其實分紅了兩步:

1) 使用git add命令

2)使用git commit命令

實際上,咱們在將工做區的文件提交給版本庫的時候,首先是將其添加到 暫存區,而後纔是從暫存區再提交給主分支。

1)git add ,將文件添加到 版本庫的 暫存區。

2)git commit ,將暫存區全部的文件一次性提交個 主分支。

咱們不能直接從工做區到 主分支,必需要通過暫存區。

 

 

結合命令再次來看看這個過程。

 

使用 git status 能夠查看 git版本庫的狀態。

 

text項目目錄下,新建一個版本庫,目前工做區沒有任何內容,以下:

 

使用 git status命令,查看 版本庫的狀態:

 

在工做區中,新建一個index.html文件,以下:

 

再次使用 git status查看,以下:

 

採納它的建議,使用git add命令,將index.html添加到版本庫的暫存區,以下:

 

再次查看狀態,以下:

說明這個文件,已經被放入暫存區了。

使用git commit 將其從暫存區提交到 主分支,以下:

 

再次查看狀態:

說明暫存區空了。

能夠參考圖示。

四. 基本操做

實際上,就是幾個常見命令,包括以下幾個:

1)git config

2)git init

3) git add

4)git commit

5)git status

6)git rese

Git能夠完成兩件事情:

1.版本控制

2.多人協做

此處,討論都是針對我的的版本控制。

1.git config

用戶獲取/設置git的一些配置。

獲取git的配置,使用 git config --list

 

咱們重點關注的就只有 用戶名和郵箱的一個設置

git config user.name 用戶名

git config user.email 郵箱名

若是須要設置全局的,能夠加 --global

若是是第一次安裝 gituser.name user.email是沒有的,因此須要設置一下。

2.git init

用於初始化一個版本庫。

能夠用兩種方式來初始化

1.先建立一個目錄,在這個目錄下,使用git init命令

2.直接使用 git init 項目名稱,初始化

 

不論是哪一種方式,都會在 項目目錄下,新建一個.git目錄,該目錄就是 版本庫,這個目錄是隱藏,也不容許用戶進行任何的操做。須要對版本庫進行操做,使用命令操做便可。

3.git add

做用:將文件從 工做區 添加到 版本庫的 暫存區

格式:git add 文件名1 文件名2 文件3

此處,也能夠添加文件夾。

查看狀態,以下:

4.git commit

做用:將全部文件一次性從暫存區 提交給 主分支,纔會造成一個版本。

格式:git commit -m 說明文字

 

一旦commit,就會將其提交個主分支,造成一個新的版本,同時會將暫存區清空。

在使用的時候,須要注意的一個問題  ---- 必需要添加說明文字。

添加說明文字有兩種方式:

1)使用 -m 參數 (推薦)

2)進入vi編輯器,而後編輯

若是在git commit的時候,沒有加上 -m ,就會進入vi編輯器,如圖:

 

vi編輯器中,兩種種模式:

1)輸入模式,容許用戶輸入內容

2)命令模式,能夠執行相關的一些命令

默認進來是一個命令模式,切換到輸入模式,按下 i,就能夠輸入相應的說明文字。

按下ESC鍵,就退出輸入模式,進入命令模式。

若是想保存退出,須要輸入 wq

 

推薦你們使用-m參數來添加說明文字。

5.git status

做用:查看版本庫的狀態,重點就是暫存區。

格式:git status

重點就是 讀懂不一樣的狀況下的說明信息:

 

6.git reset

做用:用於切換到某一個版本

格式:git reset --hard HEAD^ /commit_id

一旦咱們將項目造成多個版本,就可使用git reset切換到任意版本。

一般須要查看當前版本庫的日誌信息。使用git log來查看,以下:

如今就可使用git reset命令回退。

若是是會退到以前的版本,可使用HEAD關鍵字和commit_id。

HEAD^,回退到以前的一個版本

HEAD^^,回退到以前的兩個版本

HEAD^^^,回退到以前的三個版本

若是大於3的話,HEAD^10

更好的方法就是使用 commit_id。

若是須要回退到當前版本的將來版本,必須使用commit_id。若是使用HEAD,會回退到更小的版本。

再回到將來版本時,要分兩種狀況:

我已經使用了git log查看過版本狀況,直接拿到那個commit_id便可。

若是沒有使用git log查看過版本,使用git reflog能夠查看整個commit_id狀況。

相關文章
相關標籤/搜索