目錄
1 版本控制
1.1 什么是版本控制
1.2 為什么需要版本控制
2 Git概述
2.1 Git的工作機制
2.2 分布式版本控制工具與集中式的區別
2.3?Git是如何誕生的
3 Git的安裝
4?Git常用命令
4.1 用戶簽名的設置和修改
4.2 查看用戶簽名的設置
4.3 初始化本地庫
4.4 添加、刪除文件到暫存區
??4.5 提交文件到本地庫形成歷史版本
?4.6 修改文件內容
?4.7 修改當前版本
?5 Git分支
5.1 分支是什么
5.2 使用分支的好處
5.3 分支的常用操作命令
5.3.1 查看分支
5.3.2 創建分支
5.3.3 修改分支
5.3.4 切換分支?
?5.3.5 分支的合并
5.3.6 刪除分支
6 Git常見命令速查表
1 版本控制
1.1 什么是版本控制
????????版本控制就是一種用來記錄文件內容變化,每次文件的變化作為一個版本,以便將來查閱特定版本修訂情況的系統。
????????下面讓我們以畢業論文的多次修改為例來了解版本控制的思想:
1.2 為什么需要版本控制
????????個人開發時版本控制的必要性不是很突出,當過渡到團隊協作開發代碼的時候,版本控制就顯得格外重要了 。
????????下面以兩人共同開發代碼為例,每天的工作量都保存在服務器上。
?沒有版本控制工具
使用了版本控制工具
2 Git概述
????????Git是一個開源免費的分布式版本控制工具,它具有廉價的本地庫即指Git的庫在本地電腦的磁盤上。
2.1 Git的工作機制
- 工作區
????????工作區就是編寫完代碼之后,代碼存儲在磁盤中的位置。存儲在工作區的代碼是隨時可以刪除更新的,更新之后的代碼可以添加(add)到緩存區。
- 緩存區
? ? ? ? 緩存區用來在工作區和本地庫之間起到一個緩沖的作用,添加進緩存區的代碼也是可以隨時刪除的。緩存區的代碼可以提交(commit)到本地庫。
- 本地庫
????????提交到本地庫的代碼會生成該項目代碼的歷史版本,既然是歷史版本這個庫里的代碼就無法隨意更改了,只能基于這個版本的代碼進行修改,就算修改后生成新的版本,這個歷史版本依舊存在。
- 遠程庫
? ? ? ? 遠程庫又叫做代碼托管中心,是將本地庫的代碼推送(push)到遠程庫,遠程庫又分為局域網和互聯網兩種,互聯網遠程庫中的代碼都是開源的,局域網中的代碼只有連接到本局域網才能查看。目前比較常用的只要有以下三種:
GitHub:配合Git使用的 【國外代碼托管中心】GitHub_扎哇太棗糕的博客-CSDN博客
Gitee:配合Git使用的 【國內代碼托管中心】Gitee **墻裂推薦**_扎哇太棗糕的博客-CSDN博客
GitLab:基于局域網代碼托管中心,若有需要可自行了解。
2.2 分布式版本控制工具與集中式的區別
????????參考博客:集中式和分布式版本控制系統的區別_貧下中農-CSDN博客_分布式控制?
2.3?Git是如何誕生的
????????Git的產生也是十分有趣的,想要了解的朋友可以看看,萬一哪天跟別人裝13用得上呢。參考博客:git的誕生歷史_u012028371的博客-CSDN博客_git的歷史
3 Git的安裝
Git官網:Git?
????????點擊后會自動下載適合你電腦的最新版本的安裝包,雙擊安裝包(除了選擇安裝目錄位置,其他選項全都無腦下一步即可)。安裝之后在桌面右鍵然后選擇Git Bash Here,鍵入命令git --version返回安裝的版本號即證明安裝成功。
4?Git常用命令
????????Git中的所有命令基本上都和Linux中相同,你完全可以在Git中使用Linux的命令去秀翻室友。
4.1 用戶簽名的設置和修改
????????第一次使用時設置用戶簽名,用來區分不同的操作者身份,不然提交代碼時可能會報錯,如果想要對用戶簽名進行修改的話,只需要再次鍵入該命令修改后面的值即可。
git config --global user.name 自己設置的用戶名
git config --global user.email 自己的郵箱
4.2 查看用戶簽名的設置
🔥使用命令查看
git config user.email
git config user.name
🔥文件內容查看
C盤-->用戶-->asus-->?.gitconfig文件(具體地址因電腦而異,我的是華碩所以說可能是asus)
4.3 初始化本地庫
? ? ? ? 在想要使用git進行托管的項目文件下右鍵選擇Git Bash Here,鍵入命令git init,即可成功初始化本地庫。初始化本地庫之后會在項目文件夾下生成一個.git文件夾(一個隱藏的文件夾),文件夾里的內容切勿作絲毫的修改。
?使用ll命令對文件進行查看,ll -a 是查看所有的文件(包括隱藏文件)
4.4 添加、刪除文件到暫存區
git add 文件名
git rm --cached 文件名
?4.5 提交文件到本地庫形成歷史版本
git commit -m "日志信息" 文件名
查看大致版本信息?
git reflog
查看詳細版本信息
git log
?4.6 修改文件內容
? ? ? ?Git中的修改文件命令跟Linux中一樣。修改后的文件不再存在于緩存區,想要提交修改后的文件到本地庫必須再次使用add命令,將修改后的文件添加進緩存區才能繼續提交。
vim 文件名
?點擊鍵盤上的insert鍵可以對文件進行修改,修改完成后點擊鍵盤上的esc退出修改模式,再點擊鍵盤的:鍵,然后鍵入wq點擊ENTER鍵,即可退出文件修改。
?4.7 修改當前版本
版本修改成功后工作區的文件內容也變成相應版本的內容。
git reset --hard 版本號
?5 Git分支
5.1 分支是什么
? ? ? ? 在版本控制的過程中,如果需要同時推進多個任務,我們就可以為每個任務創建一個單獨的分支,用來單獨推進其中的一個任務。使用分支意味著程序員可以把自己的工作從主線上分離開來進行開發,開發自己的分支的時候,并不會影響到主線分支的運行。
? ? ? ? 以王者榮耀的每次更新為例,在版本1.0的時候我們想要在游戲中添加幾個英雄并新增一個玩法,此時從主分支上拉取1.0的項目形成兩個分支,同時開始研發。當添加英雄的任務完成之后,將其與主分支進行合并形成1.1版本,新增玩法則繼續開發。1.1版本上線后根據用戶反饋發現有一個bug影響游戲體驗,于是我們拉取1.1的項目形成一個熱修分支,將bug修改完成后與主分支進行合并形成1.2版本。此時新增的玩法終于完成,將其與主分支進行合并,由于此次是一次大更新,所以我們姑且將它定義為2.0版本。
?所以現在能夠理解為什么王者的每次更新都需要我們去下載資源了吧
5.2 使用分支的好處
????????并行推進多個功能的開發,提高開發效率。各個分支在開發的過程中,如果某一個分支開發失敗,不會對其他分支產生任何的影響,失敗后刪除分支重新開始即可。
5.3 分支的常用操作命令
5.3.1 查看分支
git branch -v
5.3.2 創建分支
git branch 分支名
5.3.3 修改分支
? ? ? ? 修改分支實際上就是在該分支上使用vim命令對項目的文件內容進行修改,在一個分支上修改文件并不會對影響該文件在其他分支上的內容信息,切換分支后再查看該文件會發現文件內容并沒有改變 。
5.3.4 切換分支?
git checkout 分支名
?5.3.5 分支的合并
git merge 分支名
5.3.6 刪除分支
git branch -d 分支名