目錄
1.Git文件的三種狀態(tài)與工作模式
1.1文件的三種狀態(tài)
1.2Git項(xiàng)目的三個(gè)工作區(qū)域
1.3基本git工作流程
2.Git的使用
2.1Git使用SSH鏈接下載源碼
2.2創(chuàng)建版本庫(kù)并提交文件
2.2.1編寫一個(gè)文本文件并將其提交到git倉(cāng)庫(kù)
2.2.2將項(xiàng)目提交到本地倉(cāng)庫(kù)
2.2.3提交文件到本地版本庫(kù)
2.3文件的修改與提交
2.4暫存區(qū)文件的提交與撤銷
?文章來源地址http://www.zghlxwxcb.cn/news/detail-806517.html
?文章來源:http://www.zghlxwxcb.cn/news/detail-806517.html
1.Git文件的三種狀態(tài)與工作模式
1.1文件的三種狀態(tài)
????????使用git操作文件時(shí),文件的狀態(tài)有以下三種:
??????? 已提交(committed):已提交表示數(shù)據(jù)已經(jīng)安全的保存在本地?cái)?shù)據(jù)庫(kù)中。
??????? 已修改(modified):已修改表示修改了文件,但還沒保存到數(shù)據(jù)庫(kù)中。
??????? 已暫存(staged):已暫存表示對(duì)一個(gè)已修改的當(dāng)前版本做了標(biāo)記,使之包含在下次提交的快照中。
1.2Git項(xiàng)目的三個(gè)工作區(qū)域
??????? 針對(duì)Git文件的三種狀態(tài),這里需要了解Git項(xiàng)目的三個(gè)工作區(qū)域:工作區(qū)、暫存區(qū)和Git倉(cāng)庫(kù)。
??????? 工作區(qū):簡(jiǎn)單理解為在電腦里能看到的目錄,比如自己創(chuàng)建的本地項(xiàng)目目錄。
??????? 暫存區(qū):Git的版本庫(kù)里存了很多東西,其中最重要的就是stage(或者叫index)的暫存區(qū),還有Git自動(dòng)創(chuàng)建的第一個(gè)分支master,以及指向master的一個(gè)指針叫HEAD。
??????? Git倉(cāng)庫(kù):工作區(qū)有一個(gè)隱藏目錄.git,這個(gè)不算工作區(qū),而是Git的版本庫(kù)。
1.3基本git工作流程
??????? 基本git工作流程描述如下:
??????? 1.在工作區(qū)中修改某些文件。
??????? 2.對(duì)修改后的文件進(jìn)行快照,然后添加到暫存區(qū)。
??????? 3.提交更新,將保存在暫存區(qū)的文件快照永久轉(zhuǎn)儲(chǔ)到Git倉(cāng)庫(kù)中。
??????? 流程圖如下:
2.Git的使用
2.1Git使用SSH鏈接下載源碼
??????? 以github為例:
????????GitLab和Gitee也大同小異。
2.2創(chuàng)建版本庫(kù)并提交文件
??????? 版本庫(kù)又名倉(cāng)庫(kù),也可以理解為一個(gè)目錄。這個(gè)目錄里面所有的文件都可以被Git管理起來,每個(gè)文件的修改、刪除,git都可以跟蹤,以便任何時(shí)刻都可以追蹤歷史,或者在將來某個(gè)時(shí)刻可以進(jìn)行還原。
2.2.1編寫一個(gè)文本文件并將其提交到git倉(cāng)庫(kù)
??????? 1.自己選擇合適的路徑新建一個(gè)文件夾,用來存放需要上傳的文件。右擊此文件夾進(jìn)入git Bash界面。
?????? 2 初始化git本地倉(cāng)庫(kù),通過執(zhí)行g(shù)it init命令在本地初始化一個(gè)本地倉(cāng)庫(kù),執(zhí)行該命令后會(huì)在本地初始化一個(gè)沒有任何文件的空倉(cāng)庫(kù)。
??????? 3.執(zhí)行完成后,文件夾內(nèi)會(huì)多出一個(gè).git文件夾。
??????? 4.新建文本文件git01.txt并添加到暫存區(qū)。文件內(nèi)容如下:
2.2.2將項(xiàng)目提交到本地倉(cāng)庫(kù)
?????? 1. 在.git同級(jí)目錄下添加git01.txt文件后,使用git status查看工作區(qū)與暫存區(qū)文件狀態(tài)。
????????git stsus命令用于顯示工作目錄和暫存區(qū)的狀態(tài)。使用此命令能看到哪些修改被暫存到了,哪些沒有,哪些文件沒有被Git tracked到。
????????示例如下:
??????? 2.執(zhí)行g(shù)it add命令添加文件到暫存區(qū)。
??????? git add path 通常是通過git add <path>的形式把<path>添加到索引庫(kù)中,<path>可以是目錄。git不僅能判斷出<path>中,修改(不包括已刪除)的文件,還能判斷出新添的文件,并把它們的信息添加到索引庫(kù)中。
??????? 示例如下:
??????? 此時(shí)可以看到有一個(gè)git已tracked到新文件git01.txt,文件被成功存放到暫存區(qū)。
??????? 使用git rm --cached <file>命令可以把相應(yīng)的文件從暫存區(qū)中移除,這里沒有展示。
2.2.3提交文件到本地版本庫(kù)
??????? 文件被添加到暫存區(qū)之后 ,執(zhí)行g(shù)it commit命令提交暫存區(qū)文件到本地版本庫(kù)中。
??????? git commit命令用于將更改記錄(提交)到存儲(chǔ)庫(kù)。將索引的當(dāng)前內(nèi)容與描述更改的用戶和日志消息一起存儲(chǔ)在新的提交中。通常在執(zhí)行提交時(shí),在git commit命令后跟上-m屬性,加入本次提交的記錄說明,方便后續(xù)查看提交或改動(dòng)記錄。
??????? 示例如下:
??????? git log 命令用于顯示提交日志信息。(時(shí)光穿梭時(shí)會(huì)經(jīng)常使用該命令)。
??????? 示例如下:
_____________________________________________________________________________
(1月16日更新)
2.3文件的修改與提交
??????? 首先將上述文件git01.txt修改。
??????? 然后在Git Bash窗口中輸入git status命令,發(fā)現(xiàn)文件git01.txt狀態(tài)已經(jīng)變成了已修改。
??????? 使用git add .將當(dāng)前文件目錄下的所有工作區(qū)文件保存至?xí)捍鎱^(qū),命令如下:
??????? 然后同樣的使用git commit -m '第二次提交'即可提交到git倉(cāng)庫(kù)。
??????? 用git log命令查看提交的日志信息。
??????? 我們知道要想成功提交到git倉(cāng)庫(kù),必須要經(jīng)過一個(gè)暫存區(qū),否則將提交不成功。倘若不經(jīng)過暫存區(qū),那么又將會(huì)發(fā)生什么?
??????? 首先再次修改git01.txt文件
??????? 執(zhí)行上述命令git status發(fā)現(xiàn)有一個(gè)已修改的文件,然后跳過暫存區(qū)直接執(zhí)行Git commit -m '第三次修改'命令,發(fā)現(xiàn)沒有任何變化。git01.txt仍然是已修改的狀態(tài)。
??????? 此時(shí),執(zhí)行g(shù)it diff HEAD -- git01.txt與版本庫(kù)內(nèi)容進(jìn)行比較結(jié)果如下:
??????? 差異比較說明:
??????? '---':表示變動(dòng)前的文件
??????? '+++':表示變動(dòng)后的文件
??????? 變動(dòng)的位置用兩個(gè)@作為開始和結(jié)束(此例中變動(dòng)之前即為從第一行開始連續(xù)兩行,變動(dòng)之后的即為從第一行開始連續(xù)三行)。
??????? 可以看出,文中第三行內(nèi)容并沒有提交到版本庫(kù)中,原因在于修改后的git01.txt并沒有添加到暫存區(qū)。所以執(zhí)行提交操作并不會(huì)發(fā)生任何變化。
2.4暫存區(qū)文件的提交與撤銷
??????? 當(dāng)因失誤而將文件添加到暫存區(qū)時(shí),git支持文件的撤銷操作,執(zhí)行命令git reset HEAD <文件路徑> (取消上一步操作)操作如下:
??????? 查看版本庫(kù)狀態(tài)并執(zhí)行撤銷操作:
??????? 其中撤銷操作git restore --staged <file>(移除暫存區(qū)文件)和git reset HEAD <file>任選其一。
再次查看版本庫(kù)狀態(tài),test.txt成為未追蹤文件:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
到了這里,關(guān)于超詳細(xì)Git版本控制及Git的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!