【问题标题】:Anyway of restoring local changes before pull无论如何在拉取之前恢复本地更改
【发布时间】:2016-08-01 21:21:18
【问题描述】:

我在本地处理一些文件并且在 master 分支后面。所以在继续之前,我拉动了这些文件,这样我就可以在不落后于主分支太远的情况下处理这些文件(我没有提交,因为我正在处理的代码还没有完成)。

所以有人告诉我,如果我拉取某个文件会被更改,所以我应该先提交或存储(到目前为止的标准内容)。

所以我使用了 git stash,然后拉了。果然,我被警告的文件确实发生了变化,但我的另一个(非常重要的)文件也发生了变化,我失去了很多工作。

我怎样才能让这个文件恢复到我的 pull/stash 之前的状态?我试过 git stash apply,git reset Head x。我似乎只能回到以前的提交,但无法恢复在存储之前完成的工作

有什么想法吗?

【问题讨论】:

  • 当你git stash apply时会发生什么?

标签: git github git-pull pull git-stash


【解决方案1】:

如果您隐藏了更改,则更改会在存储堆栈中。如果你没有,他们很可能会丢失。 (放松使用 Git 的几种方法之一)
看看git stash list 你在堆栈上有多少存储空间。
使用git diff stash@{x}^! 查看他们的差异,看看您的工作是否属于该特定藏匿处。
如果您找到了正确的存储,则应用其更改。
如果没有,如果您不使用某些 IDE 来跟踪所有已编辑文件的所有更改的本地历史记录,例如 IntelliJ IDEA,您可能会迷路。

【讨论】:

  • 谢谢,我可以看到我在 stash 之前所做的更改在堆栈的底部!那么我应该使用 git stash apply stash@{0} 吗?
  • stash@{0} 是堆栈的顶部,所以 git stash applygit stash pop 实际上确实可以解决这个问题。如果它没有恢复您看到的更改,请检查您应该收到的错误消息。
猜你喜欢
  • 1970-01-01
  • 2013-01-27
  • 2014-01-01
  • 1970-01-01
  • 2021-08-21
  • 2014-11-22
  • 2018-10-10
  • 2022-01-05
  • 2016-03-15
相关资源
最近更新 更多