一文看懂Git,受益匪淺

目錄

SVM 和 Git 的比較

Git工具安裝包

工作流程

託管服務

常用命令

正確開啟方式

環境配置

獲取Git倉庫

相關概念

兩種狀態

本地倉庫操作

遠端倉庫操作

Git分支

Git標籤

在IDEA中使用Git

使用SSH協議傳輸資料

SVM 和 Git 的比較

SVM

概述:

集中式版本控制系統,版本庫是集中放在中央伺服器的,而開發人員工作的時候,用的都是自己的電腦

所以首先要從中央伺服器下載最新的版本,然後開發,開發完後,需要把自己開發的程式碼提交到中央伺服器

圖解缺點

伺服器單點故障、 容錯性差

Git概述:

分散式版本控制系統 (Distributed Version Control System,簡稱 DVCS)

圖解分類

本地倉庫:

在開發人員自己電腦上的 Git倉庫

遠端倉庫:

在遠端伺服器上的 Git倉庫

使用

Clone:

克隆,就是將遠端倉庫複製到本地

Push:

推送,就是將本地倉庫程式碼上傳到遠端倉庫

Pull:拉取,就是將遠端倉庫程式碼下載到本地倉庫

工作流程

從遠端倉庫中克隆程式碼到本地倉庫

從本地倉庫中 checkout 程式碼然後進行程式碼修改

在提交前先將程式碼提交到暫存區

提交到本地倉庫。本地倉庫中儲存修改的各個歷史版本

修改完成後,和團隊成員共享程式碼時,將程式碼 push 到遠端倉庫

圖示:

一文看懂Git,受益匪淺

託管服務

如何搭建 Git遠端倉庫?

藉助網際網路上提供的一些程式碼託管服務來實現。

常用的託管服務

gitHub (地址:https://github。com/ )概述:一個面向開源及私有軟體專案的託管平臺,因為只支援 Git作為唯一的版本庫格式進行託管,故名 gitHub

碼雲 (地址: https://gitee。com/ )概述:國內的一個程式碼託管平臺,由於伺服器在國內,所以相比於 GitHub,碼雲速度會更快

GitLab (地址: https://about。gitlab。com/ )概述:一個用於倉庫管理系統的開源專案,使用 Git作為程式碼管理工具,並在此基礎上搭建起來的 web服務

常用命令

正確開啟方式

說明:

滑鼠右鍵,然後點選 Git Bash Here即可進入操作。

圖示:

環境配置

概述:

安裝 Git後首先要做的事情是設定使用者名稱稱和 email地址。這是非常重要的,因為每次 Git提交都會使用該使用者資訊。

設定使用者資訊:

使用者名稱:git config ——global user。name “South。return”密碼:git config ——global user。email “zou@return。cn”

檢視配置資訊:

git config ——listgit config user。name

說明:

透過上面的命令設定的資訊會儲存在~/。gitconfig檔案中。

獲取Git倉庫

概述:

要使用 Git對我們的程式碼進行版本控制 首先需要獲得 Git倉庫

方式一:在本地初始化一個 Git倉庫

步驟:

1。 在電腦的任意位置建立一個空目錄 (例如 repo1)作為我們的本地 Git倉庫

2。 進入這個目錄中,點選右鍵開啟 Git bash視窗

3。 執行命令 git init

說明:

在當前目錄中看到。git資料夾 (此資料夾為隱藏資料夾)則說明Git倉庫建立成功

方式二:從遠端倉庫克隆概述:

可以透過Git提供的命令從遠端倉庫進行克隆,將遠端倉庫克隆到本地

命令形式為:

git clone遠端 Git倉庫地址

相關概念

版本庫概述:

前面看到的 。git隱藏資料夾就是版本庫,版本庫中儲存了很多配置資訊、日誌資訊和檔案版本資訊等

工作目錄 (工作區)概述:

包含 。git資料夾的目錄就是工作目錄,主要用於存放開發的程式碼

暫存區

概述:

。git資料夾中有很多檔案,其中有一個 index檔案就是暫存區,也可以叫做 stage

暫存區是一個臨時儲存修改檔案的地方

關係圖

兩種狀態

概述:

Git工作目錄下的檔案存在兩種狀態。

untracked 未跟蹤 (未被納入版本控制)tracked 已跟蹤 (被納入版本控制)Unmodified 未修改狀態Modified 已修改狀態Staged 已暫存狀態

說明:

這些檔案的狀態會隨著我們執行Git的命令發生變化。

本地倉庫操作

git status 檢視檔案狀態

使用 git status –s 使輸出資訊更加簡潔

git add 將未跟蹤的檔案加入暫存區git reset 將暫存區的檔案取消暫存

git commit 將暫存區的檔案

修改提交到本地倉庫

注意:

如果未輸入 -m,則會進入編輯日誌模式,首先輸入 i

然後輸入日誌內容,完成後按 esc,最後輸入 :wq 儲存退出

git rm 刪除檔案

說明:

刪除的只是工作區的檔案,需要提交到本地倉庫

將檔案新增至忽略列表

概述:

一般我們總會有些檔案無需納入 Git 的管理,也不希望它們總出現在未跟蹤檔案列表

通常都是些自動生成的檔案,比如日誌檔案,或者編譯過程中建立的臨時檔案等

在這種情況下,我們可以在工作目錄中建立一個名為 。gitignore 的檔案 (檔名稱固定)

列出要忽略的檔案模式

示例:

# no 。a files*。a #忽略所有以。a結尾的檔案

# but do track lib。a, even though you‘re ignoring 。a files above!lib。a #不忽略lib。a的檔案

# only ignore the TODO file in the current directory, not subdir/TODO/TODO #忽略當前目錄下的TODO檔案

# ignore all files in the build/ directorybuild/ #忽略build下所有的檔案

# ignore doc/notes。txt, but not doc/server/arch。txtdoc/*。txt #忽略doc目錄下的所有以。txt檔案結尾的檔案

# ignore all 。pdf files in the doc/ directorydoc/**/*。pdf #忽略doc目錄下的所有包含子目錄下以。pdf結尾的檔案

git log 檢視日誌記錄注意:

如果有多條記錄回車可連續檢視,輸入 q退出檢視

遠端倉庫操作

說明:

該遠端倉庫是基於碼雲平臺上面的遠端倉庫進行的操作。(需要在碼雲平臺上註冊賬戶並建立倉庫)

檢視遠端倉庫

概述:

檢視已經配置的遠端倉庫伺服器,可以執行

git remote命令

。它會列出指定的每一個遠端伺服器

的簡寫,如果已經克隆了遠端倉庫,那麼至少應該能看到 origin ,這是 Git克隆的倉庫伺服器的預設名字

新增遠端倉庫

概述:

執行

git remote add <shortname> <url>

新增一個新的遠端 Git倉庫,同時指定一個可以引用的簡寫

從遠端倉庫克隆

說明:

獲得一份已經存在了的 Git倉庫的複製,Git克隆的是該 Git倉庫伺服器上的幾乎所有資料

(包括日誌資訊、歷史記錄等),而不僅僅是複製工作所需要的檔案。 當你執行 git clone 命令的時候

預設配置下遠端 Git倉庫中的每一個檔案的每一個版本都將被拉取下來

命令格式 git clone [url]

移除無效的遠端倉庫

使用 git remote rm

注意:

此命令只是從本地移除遠端倉庫的記錄,並不會真正影響到遠端倉庫

從遠端倉庫中抓取

git fetch

是從遠端倉庫獲取最新版本到本地倉庫,不會自動 merge

從遠端倉庫中拉取

git pull

是從遠端倉庫獲取最新版本並 merge到本地倉庫

注意:

如果當前本地倉庫不是從遠端倉庫克隆,而是本地建立的倉庫,並且倉庫中存在檔案

此時再從遠端倉庫拉取檔案的時候會報錯 (fatal: refusing to merge unrelated histories)

解決此問題可以在 git pull命令後加入引數——allow-unrelated-histories

推送到遠端倉庫

命令形式:git push [remote-name][branch-name]

Git分支

概述:

幾乎所有版本控制系統都以某種形式支援分支。 使用分支意味著你可以把你的工作從開發主線上分離開來,以免影響開發主線

說明:

Git的 master分支並不是一個特殊分支。 它跟其它分支沒有區別。 之所以幾乎每一個倉庫都有 master分支

是因為 git init命令預設建立它,並且大多數人都懶得去改動它

檢視分支

列出所有本地分支:git branch

列出所有遠端分支:git branch -r

列出所有本地分支和遠端分支:git branch -a

建立分支切換分支推送至遠端倉庫分支合併分支

注意:

有時候合併操作不會如此順利。 如果你在兩個不同的分支中,對同一個檔案的同一個部分

進行了不同的修改,Git就沒辦法合併它們,同時會提示檔案衝突。此時需要我們開啟衝突的檔案並

修復衝突內容,最後執行 git add命令來標識衝突已解決

刪除分支

注意:

如果要刪除的分支中進行了一些開發動作,此時執行上面的刪除命令並不會刪除分支

如果堅持要刪除此分支,可以將命令中的 -d引數改為 -D

說明:

如果要刪除遠端倉庫中的分支,可以使用

命令 git push origin –d branchName

Git標籤

概述:

Git可以給歷史中的某一個提交打上標籤,以示重要,指的是某個分支某個特定時間點的狀態,透過標籤,可以很方便的切換到標記時的狀態。

列出已有的標籤:

列出所有tag:git tag檢視tag資訊:git show [tag]

建立新標籤:

git tag [tagName]

將標籤推送至遠端倉庫:

git push [remote] [tag]

檢出標籤:

新建一個分支,指向某個tag:git checkout -b [branch] [tag]

刪除標籤:

刪除本地:git tag -d [tag]刪除遠端:git push origin :refs/tags/[tag]

在IDEA中使用Git

在IDEA中配置Git

說明:

安裝好 IntelliJ IDEA後,如果 Git安裝在預設路徑下,那麼 idea會自動找到 git的位置,如果更改了 Git的安裝位置則需要手動配置下 Git的路徑。

File→Settings開啟設定視窗,找到 Version Control下的 git選項:

選擇 git的安裝目錄後可以點選“Test”按鈕測試是否正確配置:

在IDEA中建立工程

並將工程新增至Git

將專案新增至Git管理後 可以從IDEA的工具欄上看到Git操作的按鈕

將檔案新增到暫存區提交檔案將程式碼推送到遠端倉庫從遠端倉庫克隆工程到本地從遠端拉取程式碼版本對比建立分支切換分支合併分支

使用SSH協議傳輸資料

Git支援的傳輸協議:

本地協議 (Local)

HTTPS協議

SSH (Secure Shell)協議

Git協議

說明:

本地Git倉庫和遠端倉庫之間的傳輸是透過SSH加密的,所以必須要讓遠端倉庫伺服器認證你的SSH key,在此之前,必須生成SSH key。使用ssh協議通訊時,推薦使用基於金鑰的驗證方式,必須為自己建立一對金鑰 (公鑰和私鑰),並把公鑰放在需要訪問的伺服器上。

配置SSH協議:使用Git提供的命令列工具Git Bash生成公鑰和私鑰。

1。 使用

命令 ssh-keygen -t rsa

生成公鑰和私鑰,執行完成後在 window本地使用者 。ssh目錄 C:\Users\使用者名稱\。ssh下面生成

一文看懂Git,受益匪淺

2。 複製公鑰檔案內容至碼雲伺服器

一文看懂Git,受益匪淺