我有一个项目需要支持iOS7。我想使用一个不支持 iOS7 但可以轻松修改的库(我们称之为 LIB)。我也希望 LIB 会经常更改。
什么是理想的解决方案:
我将 LIB 的代码包含到我的项目中(用最后一个标记 发布)
我修改 LIB 以支持 iOS7(通常只有一次提交)。我不想将此提交推送到 LIB 的原始存储库,但想将其保存在我的项目存储库中。
当新的 LIB 版本发布时,我会在我的项目中更新它并且 与第 2 点的更改 merge 或只是重做这些更改。
我不想在我的项目历史记录中包含 LIB 的完整历史记录(因为 git subtree 做 AFAIK)。只有类似“LIB 更改为 1.2.42;LIB 已更新以支持 iOS7;”之类的内容
我可以自己复制 LIB 的代码或维护支持 iOS7 的 LIB 的分支,但这很耗时,而且不是很“自动”。我检查了 git submodules 和 git subtree 但据我所知不可能有第 2 点,是吗?
解决这个问题的最佳方法是什么?
最佳答案
I can … maintain LIB's fork with iOS7 support
我认为这是最好的选择。
fork 库并在您的应用程序中使用您的 fork 。当您想要使用新版本的上游库时,将这些更改 merge 到您的分支中并更新您的主应用程序以使用您的分支库的新版本。
这当然可以使用 Git 子模块来完成,尽管有像 CocoaPods 这样的依赖管理器。可能是更好的选择。我通常更喜欢尽可能使用依赖管理器,尽管我不是 iOS 开发人员并且不能特别谈论 CocoaPods。
关于ios - 如何修改用 git 导入的第三方代码(子树、子模块等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34839804/