0

我的当地分支机构有问题。当我尝试这样做时,git checkout <branch>我收到此错误消息:

error: The following untracked working tree files would be overwritten by checkout:
... (list of files)
Please move or remove them before you switch branches.
Aborting

我认为原因是事实,在当前分支中,我已经重命名/移动了一些带有git mv. 此错误消息中列出的所有文件都列出了旧路径(即移动/重命名操作之前的路径)。有没有办法解决这个问题?我现在想移动到我的主分支,并将它与当前分支合并,所以之后应该没有问题,但现在我不知道如何成功切换分支(然后进行合并,如果可能还会出现一些问题)。


编辑:我能够使用 -f 选项结帐,但问题仍然存在,因为现在我不能合并,出于同样的原因(实际上,现在路径是相反的,即现在​​错误消息包含新路径,即在数据库分支中使用)并且我不知道强制 git 进行此合并的选项。

我不确定,但可能相同的解决方案适用于结帐和合并问题。


在@LutzBüch 评论之后,我试图准确地展示这个回购中发生的事情。我有分支masterdatabase。数据库分支仅在与数据库严格相关的部分上工作。这部分代码保留在名为 let's say 的目录中db。在某些时候,我不得不将此目录名称更改为DB,所以我做了一些git mv's. 让我们从上次合并开始,当一切仍然有效时。

git checkout master
git merge database
git checkout database
git commit

{now the renaming happens}
git mv db/. tmp/.
git mv tmp/. DB/.
git commit {no other changes were made}
{added some renaming related changes, i.e. changed paths in 2 files}
git commit --amend

{now it's becoming the standard}
git commit {multiple times}
git checkout master {fails}

最后一个命令失败,出现前面提到的错误消息。列表中的所有文件都有旧目录名的路径,即db. 使用后git checkout -f master,当我尝试进行合并时,我收到了以DB目录名作为路径的路径。

4

0 回答 0