在Git中,可以使用差異比較命令和版本回退命令來(lái)查看文件之間的差異并回退到早期的版本。
以下是對(duì)這些操作的簡(jiǎn)要解釋?zhuān)?/p>
差異比較:你可以使用git diff
命令來(lái)比較工作區(qū)中的文件與暫存區(qū)或已提交版本之間的差異。執(zhí)行以下命令可以查看文件的差異:
git diff
這將顯示工作區(qū)與暫存區(qū)之間的差異。如果要比較工作區(qū)與最新提交版本之間的差異,可以添加參數(shù):
git diff HEAD
此命令將顯示工作區(qū)與HEAD(最新提交)之間的差異。
版本回退:當(dāng)你需要回退到早期的版本時(shí),可以使用git checkout
或git reset
命令來(lái)實(shí)現(xiàn)。
使用git checkout
命令可以將指定版本的文件內(nèi)容還原到工作區(qū)。執(zhí)行以下命令:
git checkout <commit號(hào)> <文件名>
<commit號(hào)>是要回退到的具體提交的標(biāo)識(shí)符,可以通過(guò)git log命令查看。<文件名>是要回退的文件名。
使用git reset命令可以撤銷(xiāo)某次提交及之后的所有提交,并將代碼庫(kù)恢復(fù)到指定版本。執(zhí)行以下命令:
git reset <commit號(hào)>
<commit號(hào)>是要回退到的具體提交的標(biāo)識(shí)符。
注意:使用git reset命令回退版本將會(huì)刪除撤銷(xiāo)的提交及其后的提交記錄,且無(wú)法恢復(fù)。建議在本地開(kāi)發(fā)環(huán)境中使用該命令,避免對(duì)公共代碼庫(kù)產(chǎn)生不可逆的影響。
補(bǔ)充說(shuō)明:在進(jìn)行版本回退操作前,建議先創(chuàng)建一個(gè)分支并切換到該分支上,以保留當(dāng)前版本的穩(wěn)定狀態(tài)??梢允褂靡韵旅顒?chuàng)建和切換分支:
git branch <分支名>
git checkout <分支名>
這樣你就可以在新的分支上進(jìn)行版本回退操作,而不會(huì)影響主分支或其他工作進(jìn)展。
06.GIT本地操作-差異比較
目標(biāo)
使用 git diff來(lái)比較暫存區(qū)、本地庫(kù)與工作區(qū)的內(nèi)容
內(nèi)容
使用vim命令,對(duì)readme.txt文件進(jìn)行編輯,添加我是第二行代碼,使用wq退出
-
工作區(qū)暫存區(qū)比較
命令:git diff readme.txt
-
工作區(qū)本地庫(kù)比較
命令:git diff HEAD readme.txt
-
暫存區(qū)本地庫(kù)比較
命令:git diff --cached readme.txt
這里緩存區(qū)和本地庫(kù)沒(méi)有不同所以沒(méi)有內(nèi)容
- 補(bǔ)充:可以第二次提交到暫存區(qū)和本地倉(cāng)庫(kù)
小結(jié)
-
工作區(qū)與暫存區(qū)如何比較
git diff 文件名
-
工作區(qū)與本地庫(kù)如何比較
git diff head 文件名
-
暫存區(qū)與本地庫(kù)如何比較
git diff --cached 文件名
07.GIT本地操作-版本回退
目標(biāo)
掌握 git log、git reflog、git reset 作用
內(nèi)容
當(dāng)我們從暫存區(qū)提交到本地倉(cāng)庫(kù)時(shí),發(fā)現(xiàn)當(dāng)前的提交的版本有問(wèn)題,希望回退到指定版本如何操作呢?
使用vim命令編輯readme.txt,添加“我是第三行代碼”
命令:git add readme.txt 提交到暫存區(qū)
命令:git commit -m '第三次提交' 提交到本地倉(cāng)庫(kù)
我們可以通過(guò)git提供的查看日志命令來(lái)查看提交的日志
命令:git log 查看當(dāng)前提交日志
可以發(fā)現(xiàn),目前為止,我們已經(jīng)在本地倉(cāng)庫(kù)中提交了3次,也就是說(shuō)有3個(gè)不同版本。其中,最近的這個(gè)版本有一個(gè)標(biāo)示:HEAD-> master 這就是標(biāo)記當(dāng)前分支的當(dāng)前版本所在位置,如果沒(méi)有顯示當(dāng)前所在位置可以使用下面命令查看:
命令:git log --decorate 查看當(dāng)前提交日志,且顯示當(dāng)前分支的當(dāng)前版本所在位置
在log中,每一個(gè)版本的前面,都有一長(zhǎng)串隨即數(shù)字: b44a10787c2b2bcc7ceb9c39cf06309065518d4b ,這是每次提交的commit id ,這是通過(guò)SHA1算法得到的值,Git通過(guò)這個(gè)唯一的id來(lái)區(qū)分每次提交
-
回退到之前版本
命令:git reset --hard HEAD^ 回歸到上一個(gè)版本,Git通過(guò)HEAD來(lái)判斷當(dāng)前所在的版本位置。那么上一個(gè)版本,就用HEAD^標(biāo)示,上上一個(gè)版本就是HEAD^^,當(dāng)然往上100個(gè)版本寫(xiě)100個(gè)^比較容易數(shù)不過(guò)來(lái),所以寫(xiě)成HEAD~100。
這時(shí)我們可以在查看一下日志 git log
發(fā)現(xiàn)只有兩個(gè)版本,我們?cè)诓榭匆幌挛募?nèi)容
-
回退到指定版本
首先們使用
命令: git reflog 查看所有操作
找到之后可以使用如下命令進(jìn)行回退到指定版本
命令:git reset --hard 版本號(hào) 回退到指定版本
我們回到第三次提交,這時(shí)我們?cè)诓榭次募?/p>
小結(jié)
-
如何查看當(dāng)前日志
git log 只能看到當(dāng)前操作
-
如何查看所有操作日志
git reflog 查看所有操作日志
-
如何回退到上一個(gè)版本
git reset --hard head^
-
如何回退到指定版本
git reset --hard 版本號(hào)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-551354.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-551354.html
到了這里,關(guān)于【Java】Java核心 81:Git 教程(4)差異比較 & 版本回退的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!