9

尝试从远程分支中提取时出现错误: Your local changes to the following files would be overwritten by merge: app/..../_shared.scss Git is ask to commit the file or to stash。

问题是 - 我已经完成了git add .并且git commit -am "trying to remove the error". 问题依然存在。

git status说:“没有提交(工作目录干净)”

有谁知道如何摆脱它?

解答: 将有问题的文件移动到其他位置。然后从树中删除有问题的文件。再拉一次。然后将您的违规文件中的更改与您刚刚提取的文件进行比较。hack,但它有效。

注意:我在这里找到了答案(即使提交了这些更改,Git 也会要求我提交或存储),但由于没有人在最初的想法中投票,我应该重新发布。这是一个 hack,但它是解决问题的最快途径。

4

4 回答 4

6

如果git status报告工作目录干净,我敢打赌你的工作目录中有一个被其他人添加到远程仓库的被忽略的文件。git diff --stat your-branch remote-name/remote-branch你可以用and来确认git ls-files -i --exclude-standard

解决方案是从忽略文件中删除该文件(因此git status将其显示为未跟踪的文件),使用--include-untracked选项存储它,从远程提取更改,然后应用存储以合并您的更改。

于 2012-06-10T21:22:27.747 回答
3

Or you could "force pull" as I tend to call it.

A fair warning: this snippet will destroy all local changes.
(including commited but not pushed changes)

git fetch origin master
git reset --hard FETCH_HEAD
git clean -df
于 2013-10-22T09:54:42.550 回答
0

正如@ellotheth 所说,我试图检查被忽略的文件,但这不是问题。对我来说唯一的解决方案是移动受影响的文件。

然而,在提交期间有很多“无法取消链接文件,权限被拒绝”,我知道远程一些文件被移动/添加。可能它与Windows安装有关... Git Checkout警告:无法取消链接文件,权限被拒绝

于 2013-01-15T08:14:45.770 回答
0

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

于 2017-10-23T10:23:42.077 回答