github - CocoaPods 和 GitHub fork

标签 github cocoapods git-fork

这是我第一次 fork GitHub 项目,我对 CocoaPods 也不太熟悉,所以请耐心等待。

基本上,我在 GitHub 上 fork 了一个项目,在我的 Podfile 中使用以下内容:

pod 'REActivityViewController', '~> 1.6.7', :git => 'https://github.com/<username>/REActivityViewController.git'

然后我对 fork 进行了一些更改,当然,当我执行 pod install 来安装另一个 pod 时,它重新安装了原始的 REActivityViewController 并删除了我的更改。

我意识到我需要在另一个 pod install 之前将我的更改推送到我的 fork,但是考虑到这是由 CocoaPods 安装的存储库,我如何知道它是正在安装的 fork?我查看了 Pods 文件夹下安装的 REActivityViewController 文件夹,没有任何 git 文件。

我是否需要在项目之外处理我的分支,然后使用 CocoaPods 来安装更改?这样的工作流程太繁琐了。

或者我需要对子模块做一些事情吗?

最佳答案

我将用一个例子来回答这个问题。我有一个 TTTAttributedLabel 的分支,其中添加了一些额外的功能:

https://github.com/getaaron/TTTAttributedLabel

为了在 Cocoapods 项目中使用它,我:

  1. 将我的更改推送到我的分支
  2. 配置我的 Podfile 以获取更改和更新

将更改推送到分支后,获取上次提交的 SHA。您可以使用 git rev-parse origin/master | pbcopy 来执行此操作或上GitHub commits page对于您的项目: Screenshot of copying a commit's SHA on GitHub

然后,您可以在 Podfile 中指定 fork 上的特定提交,如下所示:

pod 'TTTAttributedLabel', :git => 'https://github.com/getaaron/TTTAttributedLabel.git', :commit => 'd358791c7f593d6ea7d6f8c2cac2cf8fae582bc1'

之后,pod update将从您的 fork 更新此特定提交。如果你愿意,你也可以做一个podspec对于你的 fork ,但我发现这种方法更简单,而且我没有足够频繁地进行更改来证明新工作流程的合理性。

Do I need to work on my fork outside of my project and then use Cocoapods to install the changes? That's way to cumbersome of a workflow.

你可以这样做,但我通常:

  1. 编辑我的项目中的代码并确保其有效
  2. 将更改复制到我的 fork,方法是
    • 导出补丁,或
    • 复制整个源代码文件
  3. 提交并推送到 GitHub
  4. 使用新 SHA 更新 Podfile
  5. 运行pod update .

Or do I need to do something with submodules?

不,你不需要。

关于github - CocoaPods 和 GitHub fork ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936885/

相关文章:

git - 更改 Git Bash 上的默认位置

github - 如何将Trac导出到Github Issues

javascript - 哪些网站正在使用我的 GitHub 托管脚本?

Github: pull 请求后清理 fork

Git pull 从别人的fork

Git + Windows + Visual Studio 分支间行尾问题引起的 merge 冲突

ios - 无法从我自己的 Pod 加载 NIB

ios - 找不到适合 iPhone5 架构的图片

dart - 如何通过 Flutter 插件使用 cocoapods?

git - 如何更改 git 存储库的获取 URL。