日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Git如何恢復(fù)被擱置的修改記錄

像 git stash和 git stash pop 這樣的命令是用來(lái)擱置(藏匿)和恢復(fù)我們工作目錄中的變化的。在本教程中,我們將學(xué)習(xí)如何在 Git 中恢復(fù)隱藏的修改記錄。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供周村企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為周村眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

在工作目錄中存儲(chǔ)更改

在我們的例子中,假設(shè)我們已經(jīng)克隆了一個(gè) Git Repo ?,F(xiàn)在,讓我們對(duì) README.md 文件做一些修改,只需在最后添加一行,并檢查我們工作目錄的狀態(tài)。

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: README.md

no changes added to commit (use "git add" and/or "git commit -a")

在這里,我們可以使用 git stash 命令來(lái)暫時(shí)擱置我們的修改。

$ git stash
Saved working directory and index state WIP on master: sdfkdsx Updated pom.xml

現(xiàn)在,如果再做一次 git status,我們會(huì)看到我們的工作目錄是干凈的。

$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

恢復(fù)存儲(chǔ)的變化并找到哈希值

讓我們來(lái)看看如何恢復(fù)隱藏的修改,并找到與隱藏的提交相關(guān)的哈希值。

將隱藏的修改恢復(fù)到工作目錄中

我們可以像這樣把隱藏的修改帶回到我們的工作目錄中。

$ git stash pop
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: README.md

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs...

正如我們?cè)谧詈笠恍锌吹降哪菢?,git stash pop 不僅恢復(fù)了被存儲(chǔ)的修改,而且還刪除了對(duì)其相關(guān)提交的引用。

當(dāng)終端打開時(shí)定位哈希值

如果我們的終端仍然是開放的,我們可以很容易地找到執(zhí)行 git stash pop 后產(chǎn)生的哈希值。在我們的例子中,顯示在最后一行的哈希值是59861637... 。

在終端關(guān)閉后恢復(fù)哈希值

即使我們已經(jīng)關(guān)閉了終端,我們?nèi)匀豢梢酝ㄟ^(guò)以下方式找到我們的哈希值。

$ git fsck --no-reflog
Checking object directories: 100% (256/256), done.
Checking objects: 100% (302901/302901), done.
commit 598616...

現(xiàn)在我們可以看到被丟棄的儲(chǔ)藏室的提交哈希值了。

恢復(fù)被丟棄的儲(chǔ)藏庫(kù)

通常情況下,一旦我們應(yīng)用了一個(gè)儲(chǔ)藏庫(kù)條目,我們就不需要它了。然而,在某些情況下,我們可能希望在丟棄一個(gè)儲(chǔ)藏庫(kù)條目之后再去找它。例如,如果使用 git reset -hard HEAD 會(huì)丟掉我們工作目錄中所有未提交的修改。在這種情況下,我們可能希望召回一些早期的藏匿修改,盡管它們被丟棄了。

使用哈希值來(lái)恢復(fù)儲(chǔ)藏的內(nèi)容

使用哈希值來(lái)處理懸空的提交,我們?nèi)匀挥锌赡芑謴?fù)這些變化。

$ git stash apply 59861637f...
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: README.md

no changes added to commit (use "git add" and/or "git commit -a")

我們可以看到,我們的工作目錄已經(jīng)恢復(fù)了先前所隱藏的變化。

找到所有的哈希提交

如果我們沒有現(xiàn)成的哈希值,我們可以找到它。

git fsck --no-flog | awk '/commit/ {print $3}'

這里,我們把 -no-flog 選項(xiàng)和 awk 結(jié)合起來(lái),只為我們過(guò)濾出哈希值。

總結(jié)

在這篇文章中,我們看到了git stash 是如何工作的,以及當(dāng)我們使用它時(shí)它是如何丟棄一個(gè)條目的。當(dāng)我們知道一個(gè)被丟棄的條目的哈希值時(shí),我們?nèi)匀豢梢允褂盟?,以及如何找到提交的哈希?


當(dāng)前文章:Git如何恢復(fù)被擱置的修改記錄
鏈接URL:http://www.5511xx.com/article/djcjdjo.html