Git概念及基礎

2022-07-07 19:12:10 字數 4385 閱讀 7794

git重點:

一、起步

1、檔案的版本

(1)操作麻煩

(2)命名不規範

(3)容易丟失

(4)協作困難

2、版本控制軟體

(1)概念:把手工管理檔案版本的方式,改為由軟體管理檔案的版本;這個負責管理檔案版本的軟體,叫做「版本控制軟體」

(2)好處:操作簡便、易於對比、易於回溯、不易丟失、協作方便

3、版本控制系統的分類

(1)本地版本控制系統

特點:使用軟體來記錄檔案的不同版本,提高了工作效率,降低了手動維護版本的出錯率

缺點:① 單機執行,不支援多人協作開發

② 版本資料庫故障後,所有歷史更新記錄會丟失

(2)集中化的版本控制系統(典型代表:svn)

特點:基於伺服器、客戶端的執行模式

① 伺服器儲存檔案的所有更新記錄

② 客戶端只保留最新的檔案版本

優點:聯網執行,支援多人協作開發

缺點:① 不支援離線提交版本更新

② 中心伺服器崩潰後,所有人無法正常工作

③ 版本資料庫故障後,所有歷史更新記錄會丟失

(3)分布式版本控制系統(典型代表:git)

特點:基於伺服器、客戶端的執行模式

① 伺服器儲存檔案的所有更新版本

② 客戶端是伺服器的完整備份,並不是只保留檔案的最新版本

優點:① 聯網執行,支援多人協作開發

② 客戶端斷網後支援離線本地提交版本更新

③ 伺服器故障或損壞後,可使用任何乙個客戶端的備份進行恢復

二、git基礎概念

1、什麼是 git

git 是乙個開源的分布式版本控制系統,是目前世界上最先進、最流行的版本控制系統。可以快速高效地處理從很小到非常大的專案版本管理。

特點:專案越大越複雜,協同開發者越多,越能體現出 git 的高效能和高可用性!

2、git 的特性

git 之所以快速和高效,主要依賴於它的如下兩個特性:

① 直接記錄快照,而非差異比較

② 近乎所有操作都是本地執行

3、svn 的差異比較

傳統的版本控制系統(例如 svn)是基於差異的版本控制,它們儲存的是一組基本檔案和每個檔案隨時間逐步累積的差異

好處:節省磁碟空間

缺點:耗時、效率低

在每次切換版本的時候,都需要在基本檔案的基礎上,應用每個差異,從而生成目標版本對應的檔案

4、git 的記錄快照

git 快照是在原有檔案版本的基礎上重新生成乙份新的檔案,類似於備份。為了效率,如果檔案沒有修改,git 不再重新儲存該檔案,而是只保留乙個鏈結指向之前儲存的檔案。

缺點:占用磁碟空間較大

優點: 版本切換時非常快,因為每個版本都是完整的檔案快照,切換版本時直接恢復目標版本的快照即可。

特點: 空間換時間

5、近乎所有操作都是本地執行

在 git 中的絕大多數操作都只需要訪問本地檔案和資源,一般不需要來自網路上其它計算機的資訊

特性:① 斷網後依舊可以在本地對專案進行版本管理

② 聯網後,把本地修改的記錄同步到雲端伺服器即可

6、git 中的三個區域

使用 git 管理的專案,擁有三個區域,分別是工作區、暫存區、git 倉庫

7、git 中的三種狀態

(1)已修改 modified

表示修改了檔案,但還沒將修改的結果放到暫存區

(2)已暫存 staged

表示對已修改檔案的當前版本做了標記,使之包含在下次提交的列表中

(3)已提交 committed

表示檔案已經安全地儲存在本地的 git 倉庫中

(4)注意:

工作區的檔案被修改了,但還沒有放到暫存區,就是已修改狀態。

如果檔案已修改並放入暫存區,就屬於已暫存狀態。

如果 git 倉庫中儲存著特定版本的檔案,就屬於已提交狀態。

8、基本的 git 工作流程

git init 命令會建立乙個名為 .git 的隱藏目錄,這個 .git 目錄就是當前專案的 git 倉庫,裡面包含了初始的必要檔案,這些檔案是 git 倉庫的必要組成部分

(3)工作區中檔案的 4 種狀態

git 操作的終極結果:讓工作區中的檔案都處於「未修改」的狀態

(4)檢查檔案的狀態

可以使用 git status 命令檢視檔案處於什麼狀態。

出現在 untracked files(未跟蹤的檔案)下面,說明未被跟蹤。未跟蹤的檔案意味著 git 在之前的快照(提交)中沒有這些檔案

(5)以精簡的方式顯示檔案狀態

git status -s

git status --short

未跟蹤檔案前面有紅色的 ?? 標記

(6)跟蹤檔案並新增到暫存區

使用命令 git add 開始跟蹤乙個檔案。

如果檔案過多,git add . 可以跟蹤目錄下所有檔案

此時再執行 git status 命令,會看到 index.html 檔案在 changes to be committed 這行的下面,說明已被跟蹤,並處於暫存狀態

以精簡的方式顯示檔案的狀態:新新增到暫存區中的檔案前面有綠色的a標記

(7)提交更新

現在暫存區中有乙個 index.html 檔案等待被提交到 git 倉庫中進行儲存。可以執行 git commit 命令進行提交,其中 -m 選項後面是本次的提交訊息,用來對提交的內容做進一步的描述

git commit -m "新建了index.html 檔案"

(9)暫存已修改的檔案

目前,工作區中的檔案已被修改,如果要暫存這次修改,需要再次執行 git add 命令,這個命令是個多功能的命令,主要有如下 3 個功效:

① 可以用它開始跟蹤新檔案

② 把已跟蹤的、且已修改的檔案放到暫存區

③ 把有衝突的檔案標記為已解決狀態

(10)提交已暫存的檔案

再次執行 git commit -m "提交訊息" 命令,即可將暫存區中記錄的 index.html 的快照,提交到 git 倉庫中進行儲存

(11)撤銷** 對檔案的修改

撤銷對檔案的修改指的是:把對工作區中對應檔案的修改,還原成 git 倉庫中所儲存的版本。

git checkout -- index.html

操作的結果:所有的修改會丟失,且無法恢復!危險性比較高,請慎重操作!

(12)取消暫存的檔案

如果需要從暫存區中移除對應的檔案,可以使用如下的命令:

git reset head 要移出的檔名稱

git reset head -- 要移出的檔名稱 :(全部新增檔案需要使用 -- )

(13)跳過使用暫存區域

git 標準的工作流程是工作區 → 暫存區 → git 倉庫,可以跳過暫存區,直接將工作區中的修改提交到 git 倉庫,這時候git 工作的流程簡化為了工作區 → git 倉庫

git commit -a -m "日誌資訊"

(14)移除檔案

從 git 倉庫中移除檔案的方式有兩種:

① 從 git 暫存區和工作區中同時移除對應的檔案

git rm -f index.js

② 只從 git 暫存區中移除指定的檔案,但保留工作區中對應的檔案

git rm -f index.js

(15)忽略檔案

一般我們總會有些檔案無需納入 git 的管理,也不希望它們總出現在未跟蹤檔案列表。 在這種情況下,我們可以建立乙個名為 .gitignore 的配置檔案,列出要忽略的檔案的匹配模式。

檔案 .gitignore 的格式規範如下:

① 以 # 開頭的是注釋

② 以 / 結尾的是目錄

③ 以 / 開頭防止遞迴

④ 以 ! 開頭表示取反

⑤ 可以使用 glob 模式進行檔案和資料夾的匹配(glob 指簡化了的正規表示式)

Git 概念及如何使用

git 是乙個版本管理工具 只在本地使用的乙個版本管理工具,其作用就是可以讓你更好的管理你的程式 github 是乙個基於git的遠端 託管平台 可以在github上建立乙個遠端庫,可以將本地庫的 提交到遠端庫,這樣你的每次提交,別人也都可以看到你的 同時別人也可以幫你修改你的 這種開源的方式非常方...

Kafka 基礎概念及架構

kafka是 個分布式 分割槽的 多副本的 多 產者 多訂閱者,基於zookeeper協調的分布式 志系統 也可以當做mq系統 常 可以 於web nginx 志 訪問 志,訊息服務等等。kafka主要應 場景 志收集系統和訊息系統 kafka主要設計目標 kafka訊息傳遞模式 發布 訂閱模式 不...

Git 札記(三)Git基本概念及配置

git 配置 很多時候使用 git 時,僅僅使用常用的幾條命令,比如 git add git commmit m commit git push origin master,但並沒有真正的理解git,若能理解git的思想和基本工作原理,用起來會知其所以然,游刃有餘。直接記錄快照,而非差異對比 其他版...