我同时处理了两个任务:编写一些代码并将工作树的文件夹作为子模块。当我切换任务时,我只是git stash save
我修改过的文件。问题是我修改过的文件现在是新子模块的一部分。
当我尝试在顶部文件夹上执行git stash pop
时,我遇到了很多冲突
$ git stash pop
error: refusing to lose untracked file at 'folder/file1'
error: refusing to lose untracked file at 'folder/file2'
[and so on]
CONFLICT (modify/delete): [folder]/file1 deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of [folder]/file1 left in tree.
CONFLICT (modify/delete): [folder]/file2 deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of [folder]/file2 left in tree.
[and so on]
CONFLICT (file/directory): There is a directory with name [folder] in Stashed changes. Adding [folder] as [folder]~Updated upstream
其中[folder]是上一个文件夹/ new submodule
我做了一个完整仓库的干净克隆,新子模块没有问题。
有没有办法将存储转移到子模块?或者在存储中获取文件并在子模块中手动合并它们?
答案 0 :(得分:0)
我发现了一个'hacky'解决方案。
首先,我使用git stash show stash@{0} -p
从我的藏匿处制作了一个git补丁。
然后我手动编辑了修补程序以修改我的路径并删除不需要的东西。
然后git patch mypatch.patch
将更改应用于我的子模块。它首次尝试,似乎没有任何麻烦。