114

This is my first time forking a GitHub project, and I'm not too competent with CocoaPods either, so please bear with me.

Basically, I forked a project on GitHub using the following in my Podfile:

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

I then made some changes to the fork, and of course when I did a pod install to install another pod it reinstalled the original REActivityViewController and erased my changes.

I'm realizing I need to push my changes to my fork before another pod install, but how do I know it is the fork being installed, considering that this is a repo installed by CocoaPods? I looked in the REActivityViewController folder installed under the Pods folder and there aren't any git files.

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

Or do I need to do something with submodules?

4

2 に答える 2

199

例を使用してこの質問に答えます。ここに追加したいくつかの追加機能を備えた TTTAttributedLabel のフォークがあります。

https://github.com/getaaron/TTTAttributedLabel

これを Cocoapods プロジェクトで使用するには、次のようにします。

  1. 変更をフォークにプッシュする
  2. 変更と更新を取得するように Podfile を構成する

変更をフォークにプッシュしたら、最後のコミットの SHA を取得します。これは、プロジェクト のGitHub コミット ページgit rev-parse origin/master | pbcopyを使用して、または上で行うことができます。GitHub でコミットの SHA をコピーするスクリーンショット

次に、次のように Podfile でフォークに特定のコミットを指定できます。

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

その後、pod updateフォークからこの特定のコミットを更新します。必要に応じて、フォーク用のを作成することもできますが、podspecこのアプローチの方が簡単であり、新しいワークフローを正当化するほど頻繁に変更を加えることはありません。

プロジェクト外でフォークを作成し、Cocoapods を使用して変更をインストールする必要がありますか? それはワークフローの面倒な方法です。

あなたはこのようにすることができますが、私は通常:

  1. プロジェクト内のコードを編集し、それが機能することを確認します
  2. 変更をフォークにコピーします。
    • パッチのエクスポート、または
    • ソースコードファイル全体をコピーする
  3. コミットして GitHub にプッシュする
  4. Podfile を新しい SHA で更新する
  5. 実行しますpod update

または、サブモジュールで何かをする必要がありますか?

いいえ、その必要はありません。

于 2014-01-05T19:17:24.380 に答える