尝试结帐到另一个分支
我有一个带
的.gitignore文件.someFile
即使我没有任何更改,尝试结帐到另一个分支也会失败
dev@cool:~/proj/source$ git status
# On branch master
nothing to commit, working directory clean
dev@cool:~/proj/source$ git checkout someBranchName
error: Your local changes to the following files would be overwritten by checkout:
.someFile
Please, commit your changes or stash them before you can switch branches.
Aborting
dev@cool:~/proj/source$
从.gitignore中删除文件并再次添加它没有帮助
运行命令:
git update-index --assume-unchanged .someFile
或
git rm --cached .someFile
没有帮助
任何想法?
答案 0 :(得分:0)
如果您暂时删除.gitignore文件会怎样?听起来Git正在跟踪文件,即使你告诉它忽略它。
您可以尝试:
git rm --cached .someFile
从git中删除文件(不从工作区中删除)。然后提交。
答案 1 :(得分:0)
应该将分支之间的切换视为应用代表它们之间差异的补丁。
在你的情况下,git尝试应用的区别是"添加新文件.somefile,但仅限于它不存在。"。
然后它就会发生冲突。
如果要使用目标分支中的版本覆盖文件,则只需在切换前将其删除即可在工作树中删除。
如果你想保留被忽略的文件,那么你可以重命名它放在一边(这不会引起任何冲突,直到它的新临时名称与其他文件名不匹配)。然后进行切换。之后只需替换" .somefile"与您临时重命名的那个 如果内容不匹配,这将导致工作树更改为文件。