如何在git分支之间签出,而一个分支有一个目录,另一个分支在相同的名称和路径下有一个子模块



在一个大型git repo中,我需要维护一个旧分支,该分支的根目录中有一个名为NAME的目录。在这个过程中,git子模块被引入到项目中,因此该目录成为了一个子模块,并且为了一致性,子模块的名称被定义为NAME。

现在,当处理当前分支NewBranchWithSubmodule时,在签出到旧的OldBranchWithDir时,我得到以下消息:

user$ git checkout OldBranchWithDir
error: The following untracked working tree files would be overwritten by checkout:
NAME/file
Please move or remove them before you switch branches.
Aborting

我在这里读到过类似的问题,但没有一个能充分解决这个问题。

结账或保持这种状态的正确方法是什么?(假设重命名或移动目录不是一个选项(

谢谢!

在子模块和树记录在同一路径的分支之间切换已经够烦人的了,正确的方法是为放弃设置的旧分支设置一个单独的工作树,您的情况是

git worktree add ../OldBranchWithDir

相关内容

最新更新