Git要求提交或储藏,但没有需要提交的内容。

9
尝试从远程分支拉取时,出现错误:Your local changes to the following files would be overwritten by merge: app/..../_shared.scss Git 要求提交文件或将其存储。
问题是 - 我已经执行了 git add .git commit -am "trying to remove the error"。但问题仍然存在。 git status 表示:“nothing to commit (working directory clean)”。
有人知道如何解决吗?
回答:将有问题的文件移动到其他位置。然后从树中删除该文件。再次拉取。然后将有问题的文件的更改与您刚刚拉取的文件进行比较。虽然是 hack,但它有效。
注意:我在这里找到了答案 (Git asks me to commit or stash even those changes are commited),但由于原始帖子没有得到赞同,所以我应该重新发布。这是一种 hack,但这是最快的解决方法。

如果您已经找到了解决方案,应该将其发布为答案并接受它-这对于其他遇到相同问题的人非常有帮助! - Will Vousden
会记住的。我并没有自己找到解决方案,只是在另一个问题上找到了解决方案。然而,似乎另一个问题的所有者不想接受这个(完全有效)的解决方案作为正确的解决方案。因此,这似乎是一个很好的分享方式。下次会按照你建议的去做。谢谢! - Kirill
就我而言,我只是将文件重命名,然后再次拉取,这样就可以了。Git甚至不关心当前缺失的文件。 - user276648
我找不到解决这个问题的方法。该仓库已经无法修复,唯一的选择就是将其删除并从头开始克隆。 - gonewiththewhind
4个回答

6
如果 git status 报告工作目录干净,请注意您的工作目录中可能有其他人添加到远程仓库的被忽略文件。您可以使用 git diff --stat your-branch remote-name/remote-branchgit ls-files -i --exclude-standard 来确认。
解决方案是从忽略文件中移除该文件(这样 git status 将显示它为未追踪的文件),然后使用 --include-untracked 选项将其存储,从远程拉取更改,并应用储藏以合并您的更改。

现在我已经使用了解决方法,无法真正确认或否认,但下次我一定会尝试。根据我们正在进行的工作,您绝对是正确的。感谢您的反馈! - Kirill
你救了我的一天! - Darshana

3

或者你可以像我经常称呼的那样进行"强制拉取"

一个公平的警告:此代码片段将销毁所有本地更改。
(包括提交但尚未推送的更改)

git fetch origin master
git reset --hard FETCH_HEAD
git clean -df

0

我已经尝试检查被忽略的文件,就像@ellotheth所说的那样,但这不是问题所在。 对我来说唯一的解决方案是移动受影响的文件。

但是在提交期间出现了许多“无法取消链接文件,权限被拒绝”的错误,我知道远程有些文件被移动/添加。 可能与Windows安装有关... Git Checkout warning: unable to unlink files, permission denied


0

以上的解决方案对我没有用。我在有问题的文件中插入了一个空行,并使用命令git update-index --no-assume-unchanged /path/to/file。然后正常提交和推送。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接