日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

版本回退

發(fā)布時間:2024/9/27 编程问答 138 豆豆
生活随笔 收集整理的這篇文章主要介紹了 版本回退 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

現(xiàn)在,你已經(jīng)學會了修改文件,然后把修改提交到Git版本庫,現(xiàn)在,再練習一次,修改readme.txt文件如下:

i am gblfy i am yuxin

然后,【工作區(qū)】-【暫存區(qū)】-【本地倉庫】嘗試提交:

修改readme.txt內(nèi)容如下:

i am gblfy i am yuxin i am gz

提交到本地倉庫,【工作區(qū)】-【暫存區(qū)】-【本地倉庫】嘗試提交:


版本1:第1次提交

i am gblfy

版本2:第2次提交

i am yuxin

版本3:第3次提交

i am gz

版本控制系統(tǒng)肯定有某個命令可以告訴我們歷史記錄,在Git中,我們用git log命令查看:

git log

git log命令顯示從最近到最遠的提交日志,我們可以看到3次提交,最近的一次是第3次提交,上一次是第2次提交,最早的一次是第1次提交。

如果嫌輸出信息太多,看得眼花繚亂的,可以試試加上--pretty=oneline參數(shù):

git log --pretty=oneline


每提交一個新版本,實際上Git就會把它們自動串成一條時間線。如果使用可視化工具查看Git歷史,就可以更清楚地看到提交歷史的時間線:

好了,現(xiàn)在我們啟動時光穿梭機,準備把readme.txt回退到上一個版本,也就是第2次提交的那個版本,怎么做呢?

首先,Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本,也就是最新的提交7ff6778…(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數(shù)不過來,所以寫成HEAD~100。

現(xiàn)在,我們要把當前版本第3次提交回退到上一個版本第2次提交,就可以使用git reset命令:

git reset --hard HEAD^


--hard參數(shù)有啥意義?這個后面再講,現(xiàn)在你先放心使用。

看看readme.txt的內(nèi)容是不是版本第2次提交:

cat readme.txt


果然被還原了。

還可以繼續(xù)回退到上一個版本第1次提交,不過且慢,然我們用git log再看看現(xiàn)在版本庫的狀態(tài):

git log

最新的那個版本第3次提交已經(jīng)看不到了!好比你從21世紀坐時光穿梭機來到了19世紀,想再回去已經(jīng)回不去了,腫么辦?

辦法其實還是有的,只要上面的命令行窗口還沒有被關(guān)掉,你就可以順著往上找啊找啊,找到那個第3次提交的commit id是7ff6778...,于是就可以指定回到未來的某個版本:

git reset --hard 7ff6778e


版本號沒必要寫全,前幾位就可以了,Git會自動去找。當然也不能只寫前一兩位,因為Git可能會找到多個版本號,就無法確定是哪一個了。

再小心翼翼地看看readme.txt的內(nèi)容:

cat readme.txt


果然,我胡漢三又回來了。

Git的版本回退速度非常快,因為Git在內(nèi)部有個指向當前版本的HEAD指針,當你回退版本的時候,Git僅僅是把HEAD從指向第:3次提交

┌────┐ │HEAD│ └────┘│└──> ○ 第3次提交│○ 第2次提交│○ 第1次提交

改為指向第2次提交

┌────┐ │HEAD│ └────┘││ ○ 第3次提交│ │└──> ○ 第2次提交│○ 第1次提交

然后順便把工作區(qū)的文件更新了。所以你讓HEAD指向哪個版本號,你就把當前版本定位在哪。

現(xiàn)在,你回退到了某個版本,關(guān)掉了電腦,第二天早上就后悔了,想恢復到新版本怎么辦?找不到新版本的commit id怎么辦?

在Git中,總是有后悔藥可以吃的。當你用$ git reset --hard HEAD^回退到第2次提交版本時,再想恢復到第3次提交,就必須找到第3次提交的commit id。Git提供了一個命令git reflog用來記錄你的每一次命令:

git reflog


終于舒了口氣,從輸出可知,第3次提交的commit id是7ff6778,現(xiàn)在,你又可以乘坐時光機回到未來了。
小結(jié)
現(xiàn)在總結(jié)一下:

HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id。

穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本。

要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。

總結(jié)

以上是生活随笔為你收集整理的版本回退的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。