在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

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

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

在工作目錄中存儲更改

在我們的例子中,假設我們已經克隆了一個 Git Repo ?,F在,讓我們對 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

    文章

    4469

    瀏覽量

    86914
  • 終端
    +關注

    關注

    1

    文章

    1181

    瀏覽量

    30511
  • Git
    Git
    +關注

    關注

    0

    文章

    203

    瀏覽量

    16048
收藏 人收藏

    評論

    相關推薦

    何在Linux設置Git

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

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

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

    如何隱藏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 的其他內容,即如何克?。ㄏ螺d)、
    的頭像 發表于 06-10 09:06 ?4326次閱讀
    在<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 ?2141次閱讀

    Git是什么

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

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

    版本庫/倉庫(Repository /r??pɑ?z?t??ri/ 倉庫)Git的管理倉庫,管理版本的數據庫,記錄文件/目錄狀態的地方,所有內容的修改記錄(版本)都在這里。就是工作區目錄下的
    的頭像 發表于 06-08 16:09 ?3543次閱讀
    <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 ?803次閱讀
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的區別

    Git是什么 Git介紹

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

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

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

    Git命令解決常見場景記錄

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

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

    Git是一種分布式版本控制系統,它可以記錄文件的修改歷史和版本變化,并可以支持多人協同開發。
    的頭像 發表于 01-22 09:30 ?1119次閱讀
    克服PLC編程的難題—基于<b class='flag-5'>Git</b>的軟件
    主站蜘蛛池模板: 欧美色乱| 欧美精品国产第一区二区 | 人人九九精品 | 你懂的在线免费视频 | 四虎影视永久地址 | 日本福利小视频 | semimi亚洲综合在线观看 | bt天堂在线观看 | 五月婷婷爱 | 日本免费黄色网 | 高清一级做a爱免费视 | 日韩三级 | 欧美午夜精品一区二区三区 | 国产一区二区精品 | 日韩午夜大片 | 天天做天天爱天天综合网2021 | 欧美人与z0zoxxxx | 亚洲人免费视频 | 五月天激情丁香 | 午夜一级精品免费毛片 | 欧美一区二区三区高清视频 | 免费又爽又黄1000禁片 | 国产情侣出租屋露脸实拍 | 国产成人精品曰本亚洲77美色 | 国产在线视欧美亚综合 | 在线观看视频一区二区三区 | 九色窝| 色吧首页dvd | 美女黄网站人色视频免费国产 | 午夜影视体验区 | 成人在线91 | 亚洲 欧美 丝袜 制服 在线 | 免费人成观看在线网 | 手机在线视频你懂的 | 日本一区二区三区四区在线观看 | 2022国产情侣真实露脸在线 | 一级毛片aaaaaa视频免费看 | 91精品久久久久含羞草 | 免费看性 | 91成人午夜性a一级毛片 | 国产午夜人做人视频羞羞 |