如何将现有的、未暂存的、未提交的子目录设置为子模块?
How to set existing, unstaged, uncommitted subdirectory as submodule?
有时,我从 github 克隆一个第 3 方项目作为项目的子目录,而不是 git submodule add <repourl>
,但在做了一些工作后我意识到我想把它变成一个子模块毕竟。
如何在不丢失更改的情况下将从未提交的现有子目录标记为子模块?
最简单的方法是:
- 移动您当前的 subrepo 文件夹(重命名)
添加您的子模块:
git submodule add -- /url/repo
将您的更改添加回去:
cd repo
git checkout abranch
git --work-tree=../repo.renamed add .
git commit -m "add work"
git push -u origin abranch
不要忘记记录该回购的新 SHA1:
cd ..
git add repo (# no trailing slash)
git commit -m "record new sha1 for repo"
git push
有时,我从 github 克隆一个第 3 方项目作为项目的子目录,而不是 git submodule add <repourl>
,但在做了一些工作后我意识到我想把它变成一个子模块毕竟。
如何在不丢失更改的情况下将从未提交的现有子目录标记为子模块?
最简单的方法是:
- 移动您当前的 subrepo 文件夹(重命名)
添加您的子模块:
git submodule add -- /url/repo
将您的更改添加回去:
cd repo git checkout abranch git --work-tree=../repo.renamed add . git commit -m "add work" git push -u origin abranch
不要忘记记录该回购的新 SHA1:
cd .. git add repo (# no trailing slash) git commit -m "record new sha1 for repo" git push