11

我正在使用 git-svn,我正在尝试运行git svn rebase.

我得到错误:

Your local changes to the following files would be overwritten by checkout:
<filename>
Please, commit your changes or stash them before you can switch branches.

我以前运行过git update-index --assume-unchanged <filename>,并对文件进行了更改,但现在我已经运行git update-index --no-assume-unchanged <filename>以摆脱它。

git status没有报告任何变化,并git stash说没有什么可藏匿的。

我已检查该文件不在.gitignore.git/info/exclude

如何进一步调试此问题?

4

2 回答 2

12

我遇到了这个问题,蒂姆的回答帮助我找到了解决方案。

过去我跑过:

git update-index --assume-unchanged index.php

问题

在远程对另一个分支进行大量更改后,我在尝试本地切换时收到了覆盖警告。

git checkout other-branch

error: Your local changes to the following files would be overwritten by checkout:
index.php
Please, commit your changes or stash them before you can switch branches.
Aborting

隐藏不起作用。

git stash save --keep-index
No local changes to save

解决方案

git update-index --no-assume-unchanged index.php
git add index.php
git commit

之后。

git checkout other-branch

成功!

于 2013-07-10T13:55:44.903 回答
11

事实证明我已经skip-worktree设置了位,所以我需要运行

git update-index --no-skip-worktree <filename>

我通过运行发现了这一点

git ls-files -v | grep "^[^H]"

(或git ls-files -v | where { $_ -match "^[^H]"}使用 Windows Powershell)

打字git help ls-files解释了输出的含义。

于 2012-12-20T17:57:03.510 回答