中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Git基本概念與核心命令

發布時間:2021-08-31 18:29:58 來源:億速云 閱讀:108 作者:chen 欄目:大數據

本篇內容介紹了“Git基本概念與核心命令”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

課程概要:

  1. GIT體系概述

  2. GIT 核心命令使用

  3. GIT 底層原理

一、GIT體系概述

提問:

  1. 大家公司是用什么工具來管理代碼版本?SVN、CVS、GIT

  2.  GIT和SVN有什么區別呢?

GIT 與 svn 主要區別:

  1. 存儲方式不一樣

  2. 使用方式不一樣

  3. 管理模式不一樣

1、存儲方式區別

GIT把內容按元數據方式存儲類似k/v數據庫,而SVN是按文件(新版svn已改成元數據存儲)


    1. 演示git 存儲過程演示

cd .git/objects/df/

git cat-file -p df70460b4b4aece5915caf5c68d12f560a9fe3e4

echo 'version1' > text.txt

git hash-object -w text.txt

2、使用方式區別

從本地把文件推送遠程服務,SVN只需要commint 而GIT需要 add、commint、push 三個步驟

SVN基本使用過程

Git基本概念與核心命令

Git基本使用過程

Git基本概念與核心命令

3、版本管理模式區別

git 是一個分布式的版本管理系統,而要SVN是一個遠程集中式的管理系統

集中式

Git基本概念與核心命令

分布式

Git基本概念與核心命令

二、GIT 核心命令使用

主要內容:

  1. git 客戶端安裝配置

  2. 整體認識GIT的基本使用

  3. 分支管理

  4. 標簽管理

  5. 遠程倉庫配置

1、安裝git 客戶端安裝

官方客戶端: httpsd://git-scm.com/downloads

其它客戶端:https://tortoisegit.org/download/

2、認識GIT的基本使用

  1. git 項目創建與克隆

  2. 文件提交與推送

完整模擬從項目添加到push 過程

  1.  創建項目

  1.  初始化git倉庫

  1.  提交文件

  1. 遠程關聯

  1. push 至遠程倉庫

本地初始化GIT 倉庫:

#基于遠程倉庫克隆至本地

git clone <remote_url>

#當前目錄初始化為git 本地倉庫

git init  <directory>

基于mvn 模板創建項目

mvn archetype:generate

本地添加

#添加指定文件至暫存區

git add <fileName>

#添加指定目錄至暫存區

git add <directory>

#添加所有

git add -A

#將指定目錄及子目錄移除出暫存區

git rm --cached target -r

#添加勿略配置文件 .gitignore

本地提交

#提交至本地倉庫

git commit file -m '提交評論'

#快捷提交至本地倉庫

git commit -am '快添加與提交'

3、分支管理

#查看當前分支

git branch [-avv]

#基于當前分支新建分支

git branch <branch name>

#基于提交新建分支

git branch <branch name> <commit id>

$ git branch -d {dev}

#切換分支

git checkout <branch name>

#合并分支

git merge <merge target>

#解決沖突,如果因沖突導致自動合并失敗,此時 status 為mergeing 狀態.

#需要手動修改后重新提交(commit) 

4、遠程倉庫管理

#查看遠程配置 

git remote [-v]

#添加遠程地址

git remote add origin http:xxx.xxx

#刪除遠程地址

git remote remove origin 

#上傳新分支至遠程

git push --set-upstream origin master 

#將本地分支與遠程建立關聯

git branch --track --set-upstream-to=origin/test test

5、tag 管理

#查看當前

git tag

#創建分支

git tag <tag name> <branch name>

#刪除分支

git tag -d <tag name>

6、日志管理

#查看當前分支下所有提交日志

git log

#查看當前分支下所有提交日志

git log {branch}

# 單行顯示日志

git log --oneline

# 比較兩個版本的區別

git log master..experiment

#以圖表的方式顯示提交合并網絡

git log --pretty=format:'%h %s' --graph

三、git 底層原理

  1. GIT存儲對像

  2. GIT樹對像

  3. GIT提交對像

  4. GIT引用

1、GIT存儲對像(hashMap)

Git 是一個內容尋址文件系統,其核心部分是一個簡單的鍵值對數據庫(key-value data store),你可以向數據庫中插入任意內容,它會返回一個用于取回該值的hash 鍵。

# git 鍵值庫中插入數據

echo 'luban is good man' | git hash-object -w --stdin

79362d07cf264f8078b489a47132afbc73f87b9a

#基于鍵獲取指定內容

git cat-file -p 79362d07cf264f8078b489a47132afbc73f87b9a

Git基于該功能 把每個文件的版本中內容都保存在數據庫中,當要進行版本回滾的時候就通過其中一個鍵將期取回并替換。

  1. 模擬演示git 版寫入與回滾過程

# 查找所有的git 對像

  find .git/objects/ -type f

# 寫入版本1

echo 'version1' > README.MF; git hash-object -w README.MF;

# 寫入版本2

echo 'version2' > README.MF; git hash-object -w README.MF;

# 寫入版本3

echo 'version3' > README.MF; git hash-object -w README.MF;

# 回滾指定版本

git cat-file -p c11e96db44f7f3bc4c608aa7d7cd9ba4ab25066e > README.MF

所以我們平常用的 git add 其實就是把修改之后的內容 插入到鍵值庫中。當我們執行 git add README.MF 等同于執行了 git hash-object -w README.MF 把文件寫到數據庫中。

我們解決了存儲的問題,但其只能存儲內容同并沒有存儲文件名,如果要進行回滾 怎么知道哪個內容對應哪個文件呢?接下要講的就是樹對象,它解決了文件名存儲的問題 。

2、GIT樹對像

樹對像解決了文件名的問題,它的目的將多個文件名組織在一起,其內包含多個文件名稱與其對應的Key和其它樹對像的用引用,可以理解成操作系統當中的文件夾,一個文件夾包含多個文件和多個其它文件夾。

Git基本概念與核心命令

每一個分支當中都關聯了一個樹對像,他存儲了當前分支下所有的文件名及對應的 key.

通過以下命令即可查看

#查看分支樹

 git cat-file -p master^{tree}

3、git提交對象

一次提交即為當前版本的一個快照,該快照就是通過提交對像保存,其存儲的內容為:一個頂級樹對象、上一次提交的對像啥希、提交者用戶名及郵箱、提交時間戳、提交評論。

$ git cat-file -p b2395925b5f1c12bf8cb9602f05fc8d580311836

tree 002adb8152f7cd49f400a0480ef2d4c09b060c07

parent 8be903f5e1046b851117a21cdc3c80bdcaf97570

author tommy <tommy@tuling.com> 1532959457 +0800

committer tommy <tommy@tuling.com> 1532959457 +0800

通過上面的知識,我們可以推測出從修改一個文件到提交的過程總共生成了三個對像:

一個內容對象 ==> 存儲了文件內容

一個樹對像 ==> 存儲了文件名及內容對像的key

一個提交對像 ==> 存儲了樹對像的key 及提交評論。

  1. 演示文件提交過程

4、GIT引用

當我們執行 git branch {branchName} 時創建了一個分支,其本質就是在git 基于指定提交創建了一個引用文件,保存在 .git\refs\heads\ 下。

  1. 演示分支的創建

 git branch dev

 cat.git\refs\heads\dev

git 總共 有三種類型的引用:

  1. 分支引用

  2. 遠程分支引用

  3. 標簽引用

#查詢比較兩個版本

 git log master..experiment

#版本提交歷史網絡

git log --pretty=format:'%h %s' --graph

#查看分支樹

git cat-file -p master^{tree}

“Git基本概念與核心命令”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

git
AI

临江市| 临夏县| 自治县| 东山县| 诏安县| 巴林左旗| 永和县| 临夏县| 孟津县| 民和| 南乐县| 肃北| 鹰潭市| 镇雄县| 馆陶县| 洛阳市| 通海县| 九龙县| 康定县| 龙里县| 儋州市| 潮州市| 徐闻县| 湖北省| 青阳县| 大洼县| 张家口市| 余干县| 塘沽区| 南开区| 江油市| 荥阳市| 油尖旺区| 文登市| 阿拉尔市| 钦州市| 斗六市| 静乐县| 九龙坡区| 泽库县| 德安县|