【问题标题】:Git stash is changing files contentsGit stash 正在更改文件内容
【发布时间】:2020-03-10 20:25:07
【问题描述】:

每次我点击 git stash 时,它都会将我的文件更改为上一次提交中的状态。为什么会发生这种情况以及如何阻止这种情况?

【问题讨论】:

  • 没有。将我的分支文件更改为本地主文件内容
  • 那么您必须提供更多信息。 git stash 应该从您的工作目录中删除所有未提交的更改并恢复到之前的提交。更改存储在您的存储中(您可以通过git stash popgit stash apply 取回它们)。但是,您最初的问题没有提到主人,只是“以前的提交”,这是 stash 应该做的。
  • 您期望/希望它做什么?
  • 已解决。我的本地主人正在引发冲突(我想我手动在本地主人中进行了更改)。我创建了一个新的本地主机,所以现在很好

标签: git git-stash


【解决方案1】:

[每次我点击 git stash 时,它都会将我的文件更改为上一次提交中的状态。

这就是它应该做的。 git stash 所做的是提交您的工作(进入两个称为“stash”的特殊临时提交;这些提交不在 any 分支上,因此可以轻松切换到另一个分支并恢复它们),然后做一个git reset --hardgit reset --hard 重置您的索引和工作树以匹配当前提交。

如果你不想这样,不要使用git stash

请注意,您可以git stash 在 / 之后检查提交的索引内容,而不是进行硬重置。我相信此选项旨在允许预提交挂钩对将由git commit 提交的文件运行代码检查操作。选项是-k(如git stash -k)。这种策略有一些小缺陷;见How do I properly git stash/pop in pre-commit hooks to get a clean working tree for tests?

【讨论】:

  • 我的本地 master 引发了冲突(我想我手动在本地 master 中进行了更改)。我创建了一个新的本地主机,所以现在很好
猜你喜欢
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
  • 2010-11-09
相关资源
最近更新 更多