Git使用之.gitignore

Git使用之.gitignore_第1张图片
git_logo.png

这篇文章主要讲.gitignore在Xcode中的使用

关于.gitignore

在Xocde中使用git管理版本时,经常会有一些文件是不需要提交的。这个时候可以在项目根目录添加一个.gitignore文件,git会根据.gitignore内容,选择忽略哪些文件。

文件内容示例:

# 以'#' 开始的行,被视为注释.
# 忽略掉所有文件名是 foo.txt 的文件.
foo.txt
# 忽略所有生成的 html 文件,
*.html
# foo.html是手工维护的,所以例外.
!foo.html
#  忽略所有.o 和 .a文件.
*.[oa]

当然.gitignore要像其他文件一样提交到项目仓库(git add .gitignore、git commit -m "add .gitignore")。

.gitignore详细语法

Xcode中.gitignore用法

以下是Objective-C.gitignore官方的写法

# Xcode
#
# gitignore contributors: remember to update  Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## Build generated
build/
DerivedData/

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

## Other
*.moved-aside
*.xcuserstate

## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md

fastlane/report.xml
fastlane/screenshots

#Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/

需要再补充一个:.DS_Store

.DS_Store (英文全称 Desktop Services Store)[1] 是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件们的图标位置或者是背景色的选择。并不需要作为项目管理文件提交管理。

Pods文件夹的版本控制

如果是团队开发,将Pod文件夹纳入版本控制,可以使其他成员clone项目时可以直接使用,但这样会使repo的体积增大。
如果为了减少repo的体积,手动管理Pods文件夹的时候,Podfile和Podfile.lock是必不可少的,这样操作简单,而且能保证所使用的Pod版本是正确的。

相关文件介绍

  • Podfile:
    Podfile 是一个文件,用于定义项目所需要使用的第三方库。该文件支持高度定制,你可以根据个人喜好对其做出定制。更多相关信息,请查阅 Podfile 指南。

  • Podspec:也是一个文件,该文件描述了一个库是怎样被添加到工程中的。它支持的功能有:列出源文件、framework、编译选项和某个库所需要的依赖等。

  • Podfile.lock:这是 CocoaPods 创建的最重要的文件之一。它记录了需要被安装的 pod 的每个已安装的版本。如果你想知道已安装的 pod 是哪个版本,可以查看这个文件。应该将 Podfile.lock 文件加入到版本控制中,这有助于整个团队的一致性。

  • Mainifest.lock:这是每次运行 pod install 命令时创建的 Podfile.lock 文件的副本。如果你遇见过这样的错误The sandbox is not in sync with the Podfile.lock,这是因为 Manifest.lock 文件和 Podfile.lock 文件不一致所引起。该文件不纳入版本控制。

参考资料

  • Xcode中使用git
  • 深入理解CocoaPods
  • Git Community Book 中文版

你可能感兴趣的:(Git使用之.gitignore)