xcode - 多开发者项目的 Xcode + Git 最佳实践

标签 xcode git version-control github bitbucket

我可以为我自己的项目创建一个存储库并使用 GitHub/BitBucket。我在与其他开发人员协作或尝试在 GitHub 上 fork 项目时遇到问题。

我知道其他答案,例如 Best practices for git repositories on open source projects但是我想知道如何解决一些 OSX/Xcode 特定问题。

  1. .DS_Store 文件可能会很痛苦。您可以使用 .gitignore 来阻止,但如果它们已经被包含,或者其他开发人员通过笨拙的 git 命令将它们添加回来会怎样?

  2. .xcodeproj 将更改其他人的目录名称和开发人员配置文件。进行 merge 或避免冲突的最佳方法是什么?

  3. 如果我从 github 项目中 fork 或 pull,我该如何清理这些问题并为维护者最小化 merge 冲突?

如果人们有一个为 Xcode 创建的示例 .gitignore,或者他们用来初始化他们的 repos 的脚本,那就太好了!

最佳答案

  1. .DS_Store 放入 .gitignore 中。然后,如果您还没有,请将 .gitignore 添加到存储库中。 (您不应该忽略 .gitignore。)现在所有开发人员都将忽略 .DS_Store 文件。如果在将 .DS_Store 放入 .gitignore 之前错误地将任何内容添加到 repo,您​​现在可以删除它们(在提交中)并且它们应该留在外面。

  2. xcodeproj 是一个目录。此目录中唯一必须位于存储库中的文件是 project.pbxproj 文件。我通常通过将这些行放在我的 .gitignore 中来忽略所有其他行:

    *.xcuserstate
    project.xcworkspace/
    xcuserdata/
    

    您应该避免在build设置中放置绝对路径。使用相对路径。

    您的 Debug 和 Release 构建应该使用 iPhone Developer 作为代码签名身份,这样 Xcode 会自动选择本地开发人员的配置文件。当您想要创建 IPA(用于分发)时,Xcode 将提供使用不同身份重新签名的功能,此时您可以根据需要选择您的分发配置文件。

  3. 如果您尝试使用 github 中出现这些错误的项目,您可以尝试让维护者修复这些错误,或者您可以确保不要触及 .DS_Store 文件和您要向上游发送的同一提交中的代码签名身份。

关于xcode - 多开发者项目的 Xcode + Git 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12817011/

相关文章:

linux - chown如何继承父目录的所有者和组或当前帐户用户

Python开发模块路径

git - 删除请求存储库时了解 GitHub : What happens, 上的 pull 请求?

svn - 是否可以从任何 VCS 自动结帐?

svn - Subversion 奇怪 - svn 信息修订版高于项目文件夹上最后更改的修订版

ios - 如何将 Thrift 0.12 导入 Xcode 以支持 Swift 4.2

ios - 无法在 Xcode 中检测到 iPhone

xcode - Mountain Lion 和 AuthorizationExecuteWithPrivileges 警告

ios - 将 Redis 库编译到 iOS 项目 ("_OBJC_CLASS_$_ObjCHiredis"时出错,引用自 :)

java - 如何在 CVS 中跟踪不同的用户?