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的思想和基本工作原理,用起來會知其所以然,游刃有餘。直接記錄快照,而非差異對比 其他版...