Added pod files and pushed. How to undo? how to use gitignore in Xcode & github?
That's correct, you need to add the Pods directory to your .gitignore
1) Remove your files from your github repository:
git rm -r Pods/
and don't forget to commit and push
2) Create a gitignore file:
- Open terminal and go through your project folder where the .git folder is located
- Type
touch .gitignore
- Type
echo "Pods/" > .gitignore
More informations : here
This is what Cocoapods official documentation has to say.
Whether or not you check in your Pods folder is up to you, as workflows vary from project to project.
It recommends that you keep the Pods directory under source control, and don't add it to your .gitignore. But ultimately this decision is up to you:
Benefits of checking in the Pods directory:
- After cloning the repo, the project can immediately build and run, even without having CocoaPods installed on the machine. There is no need to run pod install, and no Internet connection is necessary.
- The Pod artifacts (code/libraries) are always available, even if the source of a Pod (e.g. GitHub) were to go down.
- The Pod artifacts are guaranteed to be identical to those in the original installation after cloning the repo.
Benefits of ignoring the Pods directory:
1.The source control repo will be smaller and take up less space.As long as the sources (e.g. GitHub) for all Pods are available, CocoaPods is generally able to recreate the same installation. (Technically there is no guarantee that running pod install will fetch and recreate identical artifacts when not using a commit SHA in the Podfile. This is especially true when using zip files in the Podfile.)
2.There won't be any conflicts to deal with when performing source control operations, such as merging branches with different Pod versions.
Whether or not you check in the Pods directory, the Podfile and Podfile.lock should always be kept under version control.
Reference Link:Cocoapods Official Documentation
Things to give attention when you add /Pods
into .gitignore
If you are working in a team, your teammates may face issues while installing pods in their machines and the most likely reason is Podfile.lock
.
In summary,
Podfile.lock
makes sure you don't accidentally upgrade the libraries you pull in while keeping yourPodfile
concerned only with the new dependencies.
Why Podfile.lock
may cause problems?
Podfile.lock
locks the project with versions installed the first time and when you execute pod install
again, this will only install any new library in Podfile
and will not affect your existing libraries by updating them to latest code.
In case of pulling repo does not contain /Pods
, Podfile.lock
locks versions of pods that do not exist in your machine because of .gitignore
and expecting that these libraries are existing.
Easy solution to go with
Just remove Podfile.lock
then execute pod install
and Podfile.lock
will be generated again with versions of pods you installed.
Note: After removing
Podfile.lock
and installing the pods, you may interact with different versions of pods than your team.