Luk*_*uke 16 git version-control xcode github bitbucket
我可以创建一个repo并使用GitHub/BitBucket来完成我自己的项目.我在与其他开发人员合作或尝试在GitHub上分叉项目时遇到了问题.
我知道其他答案,比如开源项目中git存储库的最佳实践,但是我想知道如何解决OSX/Xcode特定问题.
.DS_Store文件可能很痛苦.您可以使用.gitignore来防止,但如果已经包含它们会发生什么,或者其他开发人员通过笨拙的git命令将它们添加回来?
该.xcodeproj将不得不更改目录名称和开发商型材其他人.什么是合并或避免冲突的最佳方式?
如果我从github项目中分叉或拉出,我如何清理这些问题并最小化维护者的合并冲突?
如果人们有一个为Xcode创建的.gitignore示例,或者他们用来初始化他们的repos的脚本,那就太棒了!
rob*_*off 15
把.DS_Store在.gitignore.然后,如果您还没有,请添加.gitignore到回购.(你不应该忽略.gitignore.)现在所有的开发人员都会忽略.DS_Store文件.如果在您投入之前错误地将任何内容添加到回购.DS_Store中.gitignore,您现在可以删除它们(在提交中)并且它们应该保持不变.
这xcodeproj是一个目录.此目录中唯一必须位于存储库中的project.pbxproj文件是该文件.我通常会将这些行放在我的行中,而忽略所有其他行.gitignore:
*.xcuserstate
project.xcworkspace/
xcuserdata/
Run Code Online (Sandbox Code Playgroud)
您应该避免在构建设置中放置绝对路径.使用相对路径.
您的调试和发布版本应该iPhone Developer用作代码签名标识,以便Xcode自动选择本地开发人员的配置文件.当您想要创建IPA(用于分发)时,Xcode将提供使用不同身份重新签名的权限,此时您可以根据需要选择分发配置文件.
如果您正在尝试使用github中出现这些错误的项目,您可以尝试让维护者修复它们,或者您可以确保.DS_Store在相同的提交中不要触摸文件和代码签名身份你想发送上游.
对于有关 .xcodeproj 和合并冲突的第二个问题。
使用.gitattributes文件指定.pbxproj应使用该merge=union策略处理所有文件的合并冲突,这应该意味着 Git 知道合并冲突双方的更改,首先获取上游更改。
我会一一尝试:
git filter-branchI.仅当您需要从历史记录中完全删除文件时才需要使用。如果这些文件不包含任何信用卡信息,那么我认为以下内容应该足够了:
git rm --cached .DS_Store
git commit -m "{Your message}"
Run Code Online (Sandbox Code Playgroud)
然后添加该文件.gitignore并提交。
这将从存储库中删除文件,但会将文件保留在工作目录中。如果您推送它,然后其他人将拉取此提交,他们可能会删除其文件,因此您必须传达这一点。通过提交,.gitignore您将阻止其他开发人员再次添加此文件。如果您不是维护者,那么我认为您不应该做任何事情,而是向维护者解决这个问题。
二. 我坚信,任何性质的隐藏文件在大多数情况下都不应该被放入存储库中。因此,我认为您应该对.xcodeproj执行与.DS_Store相同的操作,并将其放入.gitignore并提交。.gitignore是上述规则的例外。
三.如果这些文件被正确忽略,那么它们将来就不会有问题。如果它们已经在仓库中并且有人想要进行此类清理,则应该由维护人员完成并在团队内部进行沟通。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
7006 次 |
| 最近记录: |