Git使用方法詳解

Git是目前世界上最早進的分佈式版本控制系統!
git

主流的版本控制器有以下這些:數據庫

  • Git(影響力最大使用最普遍)
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Microsoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制分類:安全

  1. 本地版本控制
    • 記錄文件的每次更新,能夠對每一個版本作一個快照,或者是記錄補丁文件,適合我的用,例如RCS。
  2. 集中版本控制
    • 全部版本數據都保存在服務器上,協同開發者從服務器上同步更新或上傳本身的修改。
    • 若是不聯網,用戶就看不到歷史版本,沒法切換版本驗證問題或在不一樣分支工做。表明產品:SVN、CVS、VSS
  3. 分佈式版本控制
    • 全部版本信息倉庫同步到本地的每一個用戶(每一個人擁有所有代碼),能夠在本地看到全部的歷史記錄,能夠離線在本地提交,只需在聯網時push到響應的服務器或其餘用戶那裏。
    • 只要有一個用戶的設備沒有問題就能夠恢復全部的數據,但這增長了本地存儲空間的佔用。
    • 不會由於網絡問題而形成不能工做的狀況。

1、安裝Git及環境配置

下載網址:Gitbash

1.1 先卸載

在安裝以前首先確保已經卸載:服務器

  1. 直接反安裝便可
  2. 清理環境變量
    安裝過程:無腦下一步。

1.2 啓動Git

安裝成功後開始菜單中有如下三個程序;任意文件夾下右鍵也能夠看到對應的程序。
image網絡

  • Git Bash: Unix與Linux風格的命令行,使用最多,推薦最多。
  • Git CMD: Windows風格的命令行。
  • Git GUI: 圖形界面的Git,不建議初學者使用,儘可能先熟悉經常使用命令。

1.3 Git的必要配置

全部的配置文件都保存在本地ssh

查看當前關於Git的全部配置:分佈式

git config -l

查看Git的系統相關配置:ui

git config --system --list

查看本地Git相關配置(用戶配置):url

git config --global --list

Git相關的配置文件:

  1. Git\etc\gitconfig : Git安裝目錄下的gitconfig --system 系統級
  2. C:\Users\Administrator\.gitconfig : 只適用於當前登陸用戶的配置 --global 全局

配置用戶信息(用戶名與郵箱,必要配置)

git config --global user.name "Sino"
git config --global user.email "12345678@qq.com"

只需作一次這個設置,傳遞了--global選項,Git將老是會使用該信息來處理在系統中作的一切操做。若是但願在特定項目中使用不一樣的名稱或email地址,能夠在該項目中運行此命令而不要--global選項。

2、Git基本理論(核心)

2.1 工做區域

Git本地有三個工做區域:

  1. 工做目錄(Working Directory)

    • 工做區,平時存放項目代碼的地方。
  2. 暫存區(Stage/Index)

    • 用於臨時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息。
  3. 資源庫(Repository或Git Directory)

    • 倉庫區(或本地倉庫),安全存放數據的位置,這裏有你提交到全部版本的數據。其中HEAD指向最新放入倉庫的版本。
  4. 若是再加上遠程的git倉庫(Remote Directory)就能夠分爲四個工做區域。

    • 遠程倉庫,託管代碼的服務器,能夠簡單地認爲是你項目組中的一臺電腦用於遠程數據交換。

轉換關係以下圖:
image
image

  • Directory:使用Git管理的一個目錄,也就是一個倉庫,包含咱們的工做空間和Git的管理空間。
  • WorkSpace:須要經過Git進行版本控制的目錄和文件,這些目錄和文件組成了工做空間。
  • .git:存放Git管理信息的目錄,初始化倉庫的時候自動建立。
  • Index/Stage:暫存區,或者叫待提交更新區,在提交進入repo以前,咱們能夠把全部的更新放在暫存區。
  • Local Repo:本地倉庫,一個存放在本地的版本庫;HEAD會只是當前的開發分支(branch)。
  • Stash:隱藏,是一個工做狀態保存棧,用於保存/恢復WorkSpace中的臨時狀態。

2.2 工做流程

Git的工做流程通常是這樣的:

  1. 在工做目錄中添加、修改文件;
  2. 將須要進行版本管理的文件放入暫存區域;
  3. 將暫存區域的文件提交到Git倉庫
    所以,Git管理的文件有三種狀態:已修改(midified)、已暫存(staged)、已提交(committed)

3、Git項目搭建

3.1 建立工做目錄與經常使用指令

平常使用記住下圖6個命令:
image
本地倉庫搭建:
建立本地倉庫的方法有兩種:一種是建立全新的倉庫,另外一種是克隆遠程倉庫。

建立全新的倉庫,須要用GIT管理的項目的根目錄執行:

  1. 在當前目錄新建一個Git代碼庫

    $ git init

    執行後能夠看到,僅僅在項目目錄多出了一個.git目錄,關於版本等的全部信息都在這個目錄裏面。

  2. 克隆遠程倉庫
    另外一種方式是克隆遠程目錄,因爲是將遠程服務器上的倉庫徹底鏡像一份至本地!

    $ git clone [url]  # https://gitee.com/sino/test.git

3.2 Git的基本操做命令

3.2.1 查看文件狀態

# 查看指定文件狀態
git status [filename]

# 查看全部文件狀態
git status

# 添加全部文件到暫存區
git add .

# 提交暫存區中的內容到本地倉庫 -m 提交信息
git commit -m "消息內容"

3.2.2 忽略文件

有些時候咱們不想把某些文件歸入版本控制中,好比數據庫文件,臨時文件,設計文件等。
在主目錄下創建.gitignore文件,此文件有以下規則:

  1. 忽略文件中的空行或以井號(#)開始的行將會被忽略。
  2. 可使用Linux通配符。例如:星號(*)表明任意多個字符,問號(?)表明一個字符,方括號([abc])表明可選字符範圍,大括號({string1,string2,...})表明可選的字符串等。
  3. 若是名稱的最前面有一個感嘆號(!),表示例外規則,將不被忽略。
  4. 若是名稱的最前面是一個路徑分隔符(/),表示要忽略的文件在此目錄下,而子目錄中的文件不忽略。
  5. 若是名稱的最後面是一個路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄,而非文件(默認文件或目錄都忽略)。
#爲註釋
*.txt        #忽略全部 .txt結尾的文件,這樣的話上傳就不會被選中!
!lib.txt     #但lib.txt除外
/temp        #僅忽略項目根目錄下的temp文件,不包括其它目錄temp
build/       #忽略build/目錄下的全部文件
doc/*.txt    #會忽略 doc/notes.txt 但不包括 doc/server/arch.txt

4、Gitee相關使用

  1. 註冊登陸
  2. 設置本機綁定SSH公鑰,實現免密碼登陸
# 進入 C:\Users\Administrator\.ssh 目錄
# 生成公鑰
ssh-keygen

image
3. 將公鑰信息public key添加到碼雲帳戶中便可
4. 使用碼雲建立一個本身的倉庫

5、Git分支

git分支中經常使用的命令:

# 列出全部本地分支
git branch

# 列出全部遠程分支
git branch -r

# 新建一個分支,但依然停留在當前分支
git branch [branch-name]

# 新建一個分支,並切換到該分支
git checkout -b [branch]

# 合併指定分支到當前分支
$ git merge [branch]

# 刪除分支
$ git branch -d [branch-name]

# 刪除遠程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

# 切換到指定分支,並更新工做區
$ git checkout [branch-name]

# 切換到上一個分支
$ git checkout -

master主分支應該很是穩定,用來發布新版本,通常狀況下不容許在上面工做,工做通常狀況下在新建的dev分支上工做,工做完後,好比上要發佈,或者說dev分支代碼穩定後能夠合併到主分支master上來。

相關文章
相關標籤/搜索