git - 如何从不同的分支带来子模块?
问题描述
我在不同的分支(branch-with-submodule)上有一个子模块,目前在没有一个分支(branch-without-submodule)的分支上。
---(Commit that adds submodule)-A-B-[branch-with-submodule]
\
--C-[branch-without-submodule*]
如果我想要当前分支中的子模块,我该怎么办?我想我可以只cherry-pick
添加子模块的提交,但是如果该提交中有许多其他修改(例如,有多个子模块)并且我只需要一个特定的子模块怎么办?
有没有办法在不再次手动添加 git 子模块的情况下实现这一点?也许使用checkout
?
解决方案
git cherry-pick
是您最好的选择,尽管这是有争议的。
如果这不是一个选项,因为提交是脏的,那么总是可以选择将它分成几个不同的提交。顺便说一句,这正是你应该经常提交并推送一个的原因。提交是免费的,并且很容易压缩它们,但拆分它们需要修改历史。
git merge
也是一种可行的方式,但我相信你不想去那里,因为你只想要一个 .gitmodules 添加。所以,变基也是不行的。
最后一点:如果您因为该提交具有您需要的一个子模块和您不想要的其他文件而无法挑选,您可能总是只挑选某些文件。但是,由于这些是子模块,因此我不是 100% 它会起作用。
推荐阅读
- python - AttributeError:“HttpResponseSeeOther”对象没有属性“url”
- c++ - 使用非静态成员函数为 std::unique_ptr 设置自定义删除器
- python - 如何使用 Jupyter Notebook 存储来自 scrapy spider 解析函数的数据
- amazon-web-services - 使用 Jenkins Pipeline 的 Terraform 代码中的 AWS 访问和密钥
- unity3d - Hololens 上的 MRTK 和 Vuforia
- excel - 过滤指定列并检查是否有空白单元格,然后删除整行
- javascript - 单击堆栈屏幕的标题右侧图标以导航到本机反应中的其他屏幕
- python - 为什么我无法通过在 python 中包含 @login_required 的函数的单元测试?
- r - 如何使用此信息创建条形图?
- java - 如何重新计算变量?