精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在 Git 中恢復隱藏的修改記錄

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-09 14:09 ? 次閱讀

git stashgit 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 是如何工作的,以及當我們使用它時它是如何丟棄一個條目的。當我們知道一個被丟棄的條目的哈希值時,我們仍然可以使用它,以及如何找到提交的哈希值.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4263

    瀏覽量

    85671
  • 終端
    +關注

    關注

    1

    文章

    1115

    瀏覽量

    29831
  • Git
    Git
    +關注

    關注

    0

    文章

    196

    瀏覽量

    15736
收藏 人收藏

    評論

    相關推薦

    何在Linux設置Git

    在 Linux 設置 Git 十分簡單,但為了獲得完美的配置,我做了以下五件事。
    發表于 10-21 09:06 ?1179次閱讀

    如何使用SSH簽名Git提交記錄

    Git 支持使用 GPG 來簽名提交記錄。但 GPG 用起來很復雜,一直賴得搞。
    發表于 06-16 16:21 ?539次閱讀

    如何隱藏CAD圖紙的部分圖形對象?CAD局部隱藏

    ,如果想要查看隱藏的對象的話可以使用【恢復可見】命令恢復隱藏對象的顯示。以上就是小編給大家整理介紹的浩辰CAD建筑軟件CAD局部
    發表于 06-06 17:55

    CodeAurora GIT Repo無法使用,哪里可以修改git linux git

    :ls1046afrwy.config” 但它不適用于以下錯誤。(GIT 克隆) 所以,我檢查了 GIT Repo“ 我認為 REPO 是不可用的。 我在哪里可以找到可用的 Linux GIT Repo。我想在 Flex
    發表于 04-25 08:36

    何在Project Explorer隱藏文件夾?

    何在 MCUXpresso 的項目資源管理器隱藏項目子目錄?例如,我想隱藏我的[i]doc\\\\子目錄,這可能嗎?
    發表于 05-18 06:01

    Git如何克隆,修改,添加和刪除文件的詳細資料概述

    在 本系列的第一篇文章 開始使用 Git 時,我們創建了一個簡單的 Git 倉庫,并用我們的計算機連接到它,向其中添加一個文件。在本文中,我們將學習一些關于 Git 的其他內容,即如何克隆(下載)、
    的頭像 發表于 06-10 09:06 ?4097次閱讀
    在<b class='flag-5'>Git</b><b class='flag-5'>中</b>如何克隆,<b class='flag-5'>修改</b>,添加和刪除文件的詳細資料概述

    何在Linux查看隱藏文件

    在windows可以查看隱藏的文件。在Linux也可以查看隱藏文件且非常容易。要查看隱藏文件運行`ls -a`命令即可。
    的頭像 發表于 01-04 17:31 ?1.6w次閱讀

    如何快速批量修改Git提交記錄的用戶信息

    使用該腳本,替換其中 [Your Old Email] [Your New Author Name] [Your New Email] 之后在 git 目錄執行即可。
    的頭像 發表于 02-06 16:09 ?2005次閱讀

    Git是什么

    Git是一個免費的、開源的分布式版本控制系統,可以用于記錄一個或者若干個文件內容的變化,方便查閱或者修改
    的頭像 發表于 02-10 11:23 ?881次閱讀
    <b class='flag-5'>Git</b>是什么

    Git的基本概念,及基本框架、工作流程

    版本庫/倉庫(Repository /r??pɑ?z?t??ri/ 倉庫)Git的管理倉庫,管理版本的數據庫,記錄文件/目錄狀態的地方,所有內容的修改記錄(版本)都在這里。就是工作區目錄下的
    的頭像 發表于 06-08 16:09 ?2812次閱讀
    <b class='flag-5'>Git</b>的基本概念,及基本框架、工作流程

    git rebase和git merge的區別

    "origin"已經有了 2 個提交,如圖。 現在我們在這個分支做一些修改,然后生成兩個提交(commit)。 ? $?vi?file.txt$?git?commit$?vi?otherfile.txt$?git?commit.
    的頭像 發表于 07-05 09:54 ?621次閱讀
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的區別

    Git是什么 Git介紹

    git 是什么? Git 誕生于 2005 年,是一款免費、開源、分布式版本控制系統。 直接記錄快照,而非差異比較 Git 和其它版本控制系統的主要差別在于
    的頭像 發表于 07-22 10:50 ?1751次閱讀
    <b class='flag-5'>Git</b>是什么 <b class='flag-5'>Git</b>介紹

    git如何記錄每次更新到倉庫

    記錄每次更新到倉庫 工作目錄下的每一個文件都不外乎這兩種狀態:已跟蹤 或 未跟蹤。 已跟蹤包括:已提交(committed)、已修改(modified) 和 已暫存(staged) 檢查當前文件狀態
    的頭像 發表于 07-22 11:11 ?518次閱讀
    <b class='flag-5'>git</b>如何<b class='flag-5'>記錄</b>每次更新到倉庫

    Git命令解決常見場景記錄

    本文主要歸納一下git的學習記錄,在開發期間發現了git在sourcetree的處理不是很好,對于多選文件的丟棄這點不是很方便,所以做一個記錄,由于項目中有新建的文件,所以被識別為未跟
    的頭像 發表于 12-20 09:44 ?429次閱讀
    用<b class='flag-5'>Git</b>命令解決常見場景<b class='flag-5'>記錄</b>

    克服PLC編程的難題—基于Git的軟件

    Git是一種分布式版本控制系統,它可以記錄文件的修改歷史和版本變化,并可以支持多人協同開發。
    的頭像 發表于 01-22 09:30 ?926次閱讀
    克服PLC編程的難題—基于<b class='flag-5'>Git</b>的軟件