【问题标题】:Git pull is aborting even after hard reset即使在硬重置之后,Git pull 也会中止
【发布时间】:2021-12-22 20:48:57
【问题描述】:
$git pull

Updating 08f6632..e29f7b0
error: Your local changes to the following files would be overwritten by merge:
  file.txt
Please commit your changes or stash them before you merge.
Aborting

这样就好了。当然有些文件是不同的。 git reset --hard 现在不应该存在任何更改。

现在,当我们运行 pull 时,我们预计不存在任何更改。

$git pull

Updating 08f6632..e29f7b0
error: Your local changes to the following files would be overwritten by merge:
  file.txt
Please commit your changes or stash them before you merge.
Aborting

请有人知道是什么原因造成的/以及如何解决它。

【问题讨论】:

  • git clean -df?但是git stash -u 更安全。
  • 如果没有其他帮助,请重新克隆并手动复制您需要的更改。
  • git status 告诉您有关该文件的哪些信息?有时可以通过git diff file.txt获得更多详细信息
  • 我们需要更多地了解这些“本地更改”到file.txt。目前尚不清楚为什么git reset --hard 没有擦除这些更改,但至少有两种可能性:您只是对我们隐藏了它们。 (一种可能性:两个具有不同大小写的文件,例如 FILE.txtfile.TXT。另一种:CRLF 行结尾。git statusgit diff 结果会有所帮助。)
  • @torek git status 报告文件在重置后被修改。这很奇怪。我没有接触任何这些文件。而git diff 报告文件模式从100644100755 的变化。这有点奇怪,因为我没有chmod 任何这些

标签: git github gitlab


【解决方案1】:

您有未提交的工作。为了确保你不会丢失部分工作,Git 不允许你操作git pull(相当于git fetch 然后git merge)。
如果您想保存进度,我建议您创建一个新提交,然后您可以拉取。
另一种方法是使用git stash 临时存储未提交的工作,以便清理您的工作目录,而不执行新的提交。

【讨论】:

  • 是的,我也这么认为。但是git reset --hard 应该删除所有未分阶段的更改。
  • 是的,硬重置会删除当前正在进行的所有工作。但正如我所看到的,它并没有做出它应该做的事情。另外,我注意到您尝试在未指定要拉取的本地和远程分支的情况下进行拉取。关注documentation
猜你喜欢
  • 2012-12-26
  • 2016-08-15
  • 2020-10-20
  • 2013-09-05
  • 2018-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多