Git,主講:湯小洋
一、版本控制系統
1. 簡介
Version Control System,簡稱爲VCS,版本控制系統是一種記錄一個或多個文件的內容變化,以便將來查閱特定版本的內容變化情況的系統。
簡單來說,就是用來保存文件內容變更記錄的系統,可以將文件回退到過去某個時間點的狀態。
2. 作用
- 查閱文件的修改記錄,如:修改者、修改時間、修改的文件內容等
- 對比不同版本中文件的變化細節
- 將文件回溯到之前的某個狀態
3. 種類
版本控制系統的種類:
-
本地版本控制系統
版本庫存放在本地磁盤上
缺點:無法協同開發
-
集中化版本控制系統
版本庫集中存放在中央服務器上,所有參與人員都連接到該服務器,實現協同開發
缺點:自己電腦上沒有版本庫,本地無法進行版本管理,必須連接中央服務器才能進行版本控制,如果中央服務器宕機,則無法工作
代表應用:Subversion(SVN)
-
分佈式版本控制系統
每個人的電腦上都是一個完整的版本庫,在本地就可以進行版本管理,無需連網
但一般都會通過遠程倉庫來交換版本的修改
代表應用:Git
二、Git簡介
1. Git是什麼
Git是一個開源的分佈式版本控制系統,用來進行項目版本管理
其實就是一個軟件, 由一組命令組成,能夠對項目代碼進行版本控制
2. 工作流程
基本流程:
- 使用git命令將遠程倉庫上的文件克隆到本地倉庫中
- 從本地倉庫中檢出文件到工作區(一般都自動完成)
- 將新創建的文件添加到暫存區
- 將暫存區中的內容提交到本地倉庫
- 將本地倉庫中的內容推送到遠程倉庫上
3. 安裝Git
官網:https://git-scm.com
下載:Git-2.22.0-32-bit.exe、Git-2.22.0-64-bit.exe
安裝:只有Windows系統需要手動安裝Git軟件,Linux和Mac OS系統都自帶Git
工具:
- Git命令行工具
git --version
- Git圖形化客戶端
4. 初始化
對Git進行初始化配置
# 定義當前系統git的使用者名稱和郵箱,提交代碼時顯示的名字和郵箱
git config --global user.name "tangxiaoyang"
git config --global user.email "[email protected]"
三、Git使用
1. 常用命令
命令 | 作用 | 備註 |
---|---|---|
git init | 初始化本地Git倉庫(項目) | 會在當前目錄中創建一個.git目錄,用於記錄所有的版本變更信息 |
git status | 查看本地倉儲的文件狀態 | |
git add 文件路徑 | 將文件添加到跟蹤列表(暫存區),交由git託管 | -A 或 --all 或 . 表示添加所有文件,也可以使用*進行匹配 |
git commit | 將跟蹤列表中的文件提交到本地倉庫 | -m指定提交日誌 |
git log | 查看提交日誌 | |
git reset --hard 版本id | 回退到指定版本 | HEAD表示當前的版本 |
git reflog | 查看所有操作記錄 | 包括被回退的版本id、reset操作等 |
注:所有命令都必須在Git倉庫的根目錄下執行
2. 文件狀態
Git文件的四種狀態:
-
untracked
未跟蹤,表示文件不受git管理, 一般新建的文件處於該狀態
Untracked files
-
staged
已暫存,表示已對修改的文件做了標記,使之包含在下次要提交的文件跟蹤列表中
Changes to be committed
-
committed
已提交,表示文件已經被提交到本地倉庫
-
modified
已修改,表示文件內容已被修改,但沒有做標記
Changes not staged for commit
3. 忽略文件
可以在git倉庫的根目錄下添加一個名爲.gitignore
的文件,用於指定需要被git忽略的文件或文件夾
注意:
- 文件名必須是
.gitignore
- 文件必須在項目的根目錄下
- 每行指定一個忽略文件
- 以
#
開頭的行表示註釋
四、遠程倉庫
1. 簡介
基於Git的代碼託管平臺,常用的Git倉庫:
- GitHub https://github.com
- 碼雲 https://gitee.com
2. 操作
步驟:
-
註冊賬號、創建倉庫
-
添加遠程倉庫的地址
git remote add origin https://gitee.com/tangyang8942/study.git
-
將本地倉庫的提交記錄推送到遠程倉庫的master分支
git push origin master
- 拉取遠端master分支的更新記錄到本地
git pull origin master
命令 | 作用 | 備註 |
---|---|---|
git remote add 倉庫別名 遠程倉庫地址 | 添加遠程倉庫地址 | 倉庫別名可以自定義,一般默認使用origin |
git remote -v | 查看遠程倉庫信息 | fetch抓取、push推送 |
git remote rm 名稱 | 刪除遠程倉庫地址 | |
git push 名稱 分支 | 將本地倉庫指定分支推送到遠程倉庫 | 一般爲master主分支,默認推送到遠程倉庫的同名分支,沒有則新建 |
git pull 名稱 分支 | 拉取遠程倉庫指定分支中新的數據到本地 | 會與本地倉庫進行merge合併(更新操作,非第一次) |
git clone 遠程倉庫地址 | 克隆遠程倉庫的項目到本地 | 用於從遠端下載git項目(第一次) |
git clone和git pull區別:
- clone是沒有本地倉庫時,將遠端的整個項目下載過來
- pull是有本地倉庫時,將遠程倉庫裏新的數據更新過來,並且與本地代碼進行merge合併操作
五、分支Branch
1. 簡介
分支就是版本上的更新迭代,默認只有master主分支
可以從主分支上分離出其他的分支,各分支間互不干擾
2. 操作
命令 | 作用 | 備註 |
---|---|---|
git branch | 顯示所有分支 | 默認只有master分支 |
git branch 分支名 | 創建分支 | |
git checkout 分支名 | 切換分支 |
六、靜態頁面託管
1. 簡介
碼雲提供了免費的靜態網頁託管服務,可以託管個人的靜態網頁,稱爲碼雲Pages。
兩種方式:
- 方式一、帶二級目錄
- 方式二、不帶二級目錄
2. 操作
方式一:帶二級目錄,步驟:
-
創建一個倉庫,倉庫名稱自定義
-
將本地的靜態資源推送到遠程倉庫
必須提供
index.html
頁面,默認訪問的就是該頁面 -
選擇pages服務
服務——>Gitee Pages——>選擇部署分支master
-
訪問生成的網站地址
方式二、不帶二級目錄
- 創建一個與個人空間地址同名的倉庫,默認與碼雲賬號相同,如tangyang8942
- 通過 http://tangyang8942.gitee.io
七、在IDEA中使用Git
1. 操作
步驟:
-
配置Git
Setting——>Version Control——>Git——>指定git命令的執行路徑——>點擊Test
-
檢出項目
VCS——>Checkout from Version Control——>Git——>指定遠程倉庫的URL和本地存放目錄——>點擊Clone
-
提交/推送項目
VCS——>Commit——>Commit and Push——>輸入遠程倉庫的賬號和密碼
VCS——>Git——>Push
-
解決衝突
當本地提交的內容和遠程倉庫的內容有衝突時需要手動解決,進行合併merge
2. 顏色提示
紅色:未加入版本控制 untracked
綠色:已加入控制,未提交 staged
白色,已加入控制,已提交,無改動 committed
藍色:已加入控制,已提交,有改動 modified
灰色:版本控制已忽略文件
視頻課程鏈接:Git快速入門視頻課程 https://edu.51cto.com/sd/b2c67