我有一个包含git子模块的projectx
/projectx/foo/bar/submodule
子模块库本身就是一个跟踪svn存储库的git-svn存储库。
在独立的子模块仓库中,我引入了一些新的更新:
git svn fetch
我看到了一些修改。所以我跑了:
git svn rebase master
当我打电话时:
git status
一切都很好看。所以在我的projectx的根目录中,我运行:
git submodule update
没有任何反应。我究竟做错了什么?我肯定跑了:
git submodule add
git submodule init
在子模块上,当我运行时:
git submodule status
我看到哈希的状态。
那么为什么git submodule update
不会导致任何更新?
答案 0 :(得分:3)
不幸的是,git submodule update
会导致git fetch
在子模块中运行而不是git svn fetch
。最简单的解决方案是将您的git-svn
克隆的subversion存储库保留在其他地方,然后将该存储库添加为子模块。这就是这个类似问题的建议:
大概如果你想让其他人使用你的存储库,那就是你想要做的事情,因为.gitmodules
只能指向一个git存储库,而不是一个SVN存储库。
当然,没有什么能阻止你在子模块目录中手动运行git svn rebase
,然后在超级模块中添加和提交你喜欢的任何版本。但是,.gitmodules
中的URL需要指向该存储库或其克隆。