【问题标题】:Git recover stashed changes after merge --no-ffGit 在合并后恢复隐藏的更改 --no-ff
【发布时间】:2012-06-16 21:30:33
【问题描述】:

我经常使用“git stash”和“git stash pop”来保存和恢复工作树中的更改。这就是我所做的,我之前未提交的更改现在已经消失了。

git stash -u
git checkout master
git pull --rebase
git checkout dev
git merge --no-ff master
10 files changed, 1000 insertions(+), 2000 deletions(-)
git stash pop 
CONFLICT (content): Merge conflict in file.ext

然后我想我可以恢复合并,我做到了:

git reset --hard origin/master
git reset --hard origin/master

现在我在file.ext 的任何地方都看不到我以前隐藏的任何未提交的更改,只有合并的代码。如何恢复我最初隐藏的所有更改?

【问题讨论】:

    标签: git git-merge git-stash git-reset


    【解决方案1】:

    当您从stash 中删除pop 时,它也会从stash 中删除它。因此,隐藏的更改被转储回您的工作目录。然后,当您reset 时,您恢复了这些相同的更改。

    git reset --hard 是为数不多的危险“you-could-totally-lose-work-here”命令之一。 This 很好地解释了reset 的不同方面。

    总而言之,它们不再位于 stash 中,而您 reset 工作目录中。因此,它们很可能会丢失在比特和字节的以太中。虽然由于这些更改曾经被隐藏,但您可以通过git fsck --lost-found 找到提交。

    【讨论】:

      猜你喜欢
      • 2013-05-25
      • 2011-07-31
      • 2018-07-01
      • 2012-07-25
      • 1970-01-01
      • 2018-11-29
      • 2022-08-18
      • 2013-08-10
      • 2019-03-28
      相关资源
      最近更新 更多