2012-04-28 48 views
1

这似乎是一个常见的问题,但我不能找到一个合理的解决方案:
恕我直言,与git submodules恶化问题出在哪里子模块承诺但不推变化使用包含git submodule update的存储库使用情况轻松删除。引用:防止混帐子模块更新改变

,如果你做了,并承诺一个子模块内 变化没有检查出一个分支这不是安全运行git子模块的更新。他们 将被无声覆盖:

(...后面有一个例子)。

所以,将以下问题
super是一个存储库根文件夹和submod是包含一个子模块的子文件夹:

-super 
    -submod 

当我在子模块承诺但不推,然后运行git submodule update我得到我的承诺 submod 更改删除(哦,恐怖)。
如何在我这样做时添加确认are you sure问题? 挂钩,脚本或任何其他适用的想法更受欢迎。

TIA

回答

1

有没有钩用于预子模块更新,所以你很可能需要做的是,而不是写你使用代替git submodule update的脚本。

看到一个简单的方法,如果您有任何修改子模块是这样的:

if git submodule status | grep -q '^+'; then 
    # at least one submodule has changes 
fi 

还要注意的是,如果一个偶然的更新吹走你的变化,你可能仍然能够通过子模块结帐的引用日志挽救他们(因为子模块签出本身就是完整的Git仓库)。