成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Git如何恢復被擱置的修改記錄

開發 前端
在這篇文章中,我們看到了git stash 是如何工作的,以及當我們使用它時它是如何丟棄一個條目的。當我們知道一個被丟棄的條目的哈希值時,我們仍然可以使用它,以及如何找到提交的哈希值.

大家好,我是指北君。

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

在工作目錄中存儲更改

在我們的例子中,假設我們已經克隆了一個 Git Repo 。現在,讓我們對 README.md 文件做一些修改,只需在最后添加一行,并檢查我們工作目錄的狀態。

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

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

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

在這里,我們可以使用 git stash 命令來暫時擱置我們的修改。

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

現在,如果再做一次 git status,我們會看到我們的工作目錄是干凈的。

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

nothing to commit, working tree clean

恢復存儲的變化并找到哈希值

讓我們來看看如何恢復隱藏的修改,并找到與隱藏的提交相關的哈希值。

將隱藏的修改恢復到工作目錄中

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

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

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

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

正如我們在最后一行看到的那樣,git stash pop 不僅恢復了被存儲的修改,而且還刪除了對其相關提交的引用。

當終端打開時定位哈希值

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

在終端關閉后恢復哈希值

即使我們已經關閉了終端,我們仍然可以通過以下方式找到我們的哈希值。

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

現在我們可以看到被丟棄的儲藏室的提交哈希值了。

恢復被丟棄的儲藏庫

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

使用哈希值來恢復儲藏的內容

使用哈希值來處理懸空的提交,我們仍然有可能恢復這些變化。

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

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

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

我們可以看到,我們的工作目錄已經恢復了先前所隱藏的變化。

找到所有的哈希提交

如果我們沒有現成的哈希值,我們可以找到它。

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

這里,我們把 -no-flog 選項和 awk 結合起來,只為我們過濾出哈希值。

總結

在這篇文章中,我們看到了git stash 是如何工作的,以及當我們使用它時它是如何丟棄一個條目的。當我們知道一個被丟棄的條目的哈希值時,我們仍然可以使用它,以及如何找到提交的哈希值.

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2009-11-11 17:02:01

ADO修改記錄

2020-11-10 09:45:16

Git修改記錄

2009-08-17 08:33:00

Visual C#數據

2014-10-11 17:48:46

排名恢復

2011-03-30 14:19:56

MySQL數據庫修改恢復

2021-04-20 08:33:29

SQL快照數據

2021-05-08 10:04:30

Windows10操作系統微軟

2018-08-13 10:17:01

LinuxGit命令倉庫

2020-11-08 13:42:00

勒索軟件加密數據數據安全

2009-12-21 16:17:01

2024-02-26 09:46:04

Slave數據GreatSQL

2011-05-10 14:00:54

2022-12-01 14:02:02

MySQL數據文件

2022-03-23 09:18:10

Git技巧Linux

2023-10-25 13:37:04

Git

2024-08-09 10:06:09

2023-01-27 15:11:39

人工智能AI 律師律師

2024-04-01 08:23:20

代碼Javajavascript

2009-08-07 15:38:15

精通C#數據庫編程

2011-03-21 15:40:31

Oracle
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99re国产视频| 日韩在线一区二区 | h视频在线观看免费 | 日本成人中文字幕 | 91 久久| 国产成人在线一区 | 国产精品美女久久久久久免费 | 综合网视频 | 视频在线一区二区 | 亚洲最新在线视频 | 亚洲一区二区在线电影 | 欧美精品一区在线 | 欧美一区2区三区3区公司 | 草久在线 | 国产乱码精品一区二区三区忘忧草 | 91中文在线观看 | 97国产精品 | 国产一区二区三区四区hd | av手机免费在线观看 | 蜜桃五月天 | 亚洲一区二区三区免费在线观看 | 亚洲区一区二 | 91视频网| 四虎成人免费视频 | 九九热在线视频观看这里只有精品 | 成人av免费在线观看 | 99久久婷婷 | 一区二区三区国产精品 | 免费特黄视频 | 亚洲精品久久久久久久不卡四虎 | 日韩一区二区在线视频 | 久久精品国产99国产精品亚洲 | 欧美午夜影院 | 亚洲欧美日韩精品久久亚洲区 | 亚洲vs天堂 | 成人一区二区视频 | 亚洲有码转帖 | 久久99精品久久久久久国产越南 | av一二三区 | 无码日韩精品一区二区免费 | 午夜精品一区二区三区在线视 |