重新暂存新子模块的目录

时间:2016-04-11 19:48:17

标签: git git-submodules

不幸的是,我经常遇到以下情况,虽然我认为自己是一个相当高级的Git用户,但我不知道如何修复它。

假设我在我的存储库中添加了一个子模块git://foo.com/bar.git

git submodule add git://foo.com/bar.git ./vendor/bar
git submodule update --init --recursive

到目前为止,这么好。现在Git已将修改后的文件添加到索引中,包括实际子模块目录的某种特殊条目。这个特殊条目只包含当前子模块提交的哈希:

git status
    modified:   .gitmodules
    new file:   vendor/bar

现在,我不小心取消了整个目录:

git reset .

糟糕。如果此时我尝试重新添加.gitmodulesvendor/bar,第一个很好(因为它是纯文本文件),但添加子模块目录会将目录中的所有文件分段,如如果它不是子模块!

git add .
git status
    modified: .gitmodules
    new file: (all files in vendor/bar: long list!)

当Git注册子模块时,最初创建的特殊索引条目是什么,以及如何重新创建它?

0 个答案:

没有答案