我应该将 Xcode 项目的哪些文件存储在版本控制中?
Posted
技术标签:
【中文标题】我应该将 Xcode 项目的哪些文件存储在版本控制中?【英文标题】:What files of an Xcode project should I store in version control? 【发布时间】:2015-10-31 15:53:19 【问题描述】:我是 Xcode 的新手,刚刚发现它在项目目录中存储了一堆用户信息和其他东西,这些东西我在版本控制中并不真正需要,也不想放在 Github 上。 Xcode 项目基本上是这样的:
1 AppName/
2 ├── AppName
3 │ ├── Base.lproj
4 │ │ ├── LaunchScreen.xib
5 │ │ └── Main.storyboard
6 │ ├── Images.xcassets
7 │ │ └── AppIcon.appiconset
8 │ │ └── Contents.json
9 │ ├── AppDelegate.swift
10 │ ├── Info.plist
11 │ └── ViewController.swift
12 ├── AppName.xcodeproj
13 │ ├── project.xcworkspace
14 │ │ ├── xcuserdata
15 │ │ │ └── user1.xcuserdatad
16 │ │ │ └── UserInterfaceState.xcuserstate
17 │ │ └── contents.xcworkspacedata
18 │ ├── xcuserdata
19 │ │ └── user1.xcuserdatad
20 │ │ └── xcschemes
21 │ │ ├── AppName.xcscheme
22 │ │ └── xcschememanagement.plist
23 │ └── project.pbxproj
24 └── AppNameTests
25 ├── AppNameTests.swift
26 └── Info.plist
我倾向于只提交 AppName/
和 AppNameTests/
并排除 AppName.xcodeproj/
目录。这样做的推荐方法是什么?
【问题讨论】:
Git ignore file for Xcode projects 的可能重复项 【参考方案1】:您需要使用.gitignore
文件来指定您不想存储在 GitHub 中的文件。
Here is how to create the file 和 here's what should go in that .gitignore
file。
【讨论】:
【参考方案2】:一个更好的问题是我的 git 忽略文件中应该包含什么。这是 github 存储库的链接,其中包含您需要的文件
https://github.com/github/gitignore/blob/master/Global/Xcode.gitignore
确保您从该文件开始,以便正确忽略这些文件,因为如果您不添加某些文件,我已经添加了这些文件,您将不得不手动删除它们。
【讨论】:
【参考方案3】:“推荐方式”实际上取决于您想对项目做什么。通常,有三种选择:
只签入那些构建项目所必需的文件 添加反映开发自定义的文件(例如在编辑器中存储当前可见文件名称的项目文件) 生成的文件,以制作项目状态的完整快照。使用最后一个,您可能会遇到时间戳问题(虽然可以告诉 git 了解有关提交时间的一些信息 - 请参阅 Checking out old file WITH original create/modified timestamps - 很少有人这样做)。如果没有使用原始时间戳检索文件的系统,您最终会得到一组文件,每次提交时都需要重新编译。
如果您将文件移动到文件系统的另一部分(或尝试与他人共享文件),即使保存自定义文件也可能会出现问题。
所以...使用.gitignore
过滤掉不需要构建的文件。但请检查您是否可以使用全新的结帐成功构建。
【讨论】:
以上是关于我应该将 Xcode 项目的哪些文件存储在版本控制中?的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 项目的 Git 忽略文件正在忽略 .swift 文件
从 git 存储库中排除 ios 项目的哪些文件? [复制]