如何将子模块中未提交的更改移动到新分支

How to move uncommitted changes in a submodule to a new branch

我的问题部分重复 Moving uncommitted changes to a new branch

但是,诀窍是,我对属于子模块的几个文件进行了更改。

例如

My Primary repo: /testing
Sub-module is at: /testing/lib/xyz

我对 /testing/*/testing/lib/xyz/*

下的很多文件进行了更改

现在我可以执行 git checkout -b new_branch 并将未提交的更改获取到新分支。但是这样不会把/testing/lib/xyz/*下的改动拿到新的分支,因为这个路径属于一个子模块。

问题:如何将未提交的更改(包括对子模块的更改)移动到新分支。

原因是,在我的匆忙中,我对 master 分支中的很多文件进行了相当多的更改以修复某些问题。现在修复工作正常,但是,我不想将这些更改合并到 master 中,我也不想丢失这些更改。于是想到把这些改动搬到一个新的分支上,然后在新的分支上继续工作。但是后来我遇到了这个子模块问题。

子模块是一个 git 存储库:您可以在那里创建一个分支来引用您的新更改,正如“Moving uncommitted changes to a new branch”中所述。

然后将其内容重置为它自己的 master 分支。

我建议将该分支推送到子模块远程源回购,以便避免将这些更改纯粹保存在本地。