在React Native项目中应忽略哪些文件夹git?

时间:2015-03-27 06:52:30

标签: reactjs react-native

我正在玩Facebook/React Native,当我运行git init时,我不知道应该忽略什么node_modules文件夹,

我应该提交所有iOS文件夹吗?

由于

6 个答案:

答案 0 :(得分:21)

当您启动新项目时,React Native CLI会创建一个.gitignore文件:

react-native init <ProjectName>

它涵盖了应该/可以忽略的所有基础知识。

来源:https://github.com/facebook/react-native/blob/master/template/_gitignore

答案 1 :(得分:8)

我们建议.gitignore:

https://github.com/facebook/react-native/blob/v0.2.1/Examples/SampleApp/.gitignore

它忽略了用户特定的Xcode文件和node_modules目录。

答案 2 :(得分:7)

gitignore.io建议使用以下反应原生的.gitignore文件:

https://www.gitignore.io/api/reactnative

创建
### ReactNative ###
# React Native Stack Base
### ReactNative.Xcode Stack ###
# 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
*.xccheckout
*.xcscmblueprint

### ReactNative.Node Stack ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Typescript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env


### ReactNative.Buck Stack ###
buck-out/
.buckconfig.local
.buckd/
.buckversion
.fakebuckversion

### ReactNative.macOS Stack ###
*.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### ReactNative.Gradle Stack ###
.gradle
**/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Cache of project
.gradletasknamecache

# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
# gradle/wrapper/gradle-wrapper.properties

### ReactNative.Android Stack ###
# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# Intellij
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/dictionaries
.idea/libraries

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Freeline
freeline.py
freeline/
freeline_project_description.json

### ReactNative.Linux Stack ###
*~

# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

# .nfs files are created when an open file is removed but is still being accessed
.nfs*

# End of https://www.gitignore.io/api/reactnative

答案 3 :(得分:3)

如果查看React Native示例:

https://github.com/facebook/react-native/tree/master/Examples

每个人都有一个目录,其内容类似于react-native-cli生成的iOS目录。进一步研究Xcode项目文件,它也在那里被引用,并查看内容 - 有像启动屏幕这样的东西。

所以是的,需要iOS目录。

关于node_modules,我建议你看看这个提供更多信息的答案:

https://stackoverflow.com/a/19416403/125680

答案 4 :(得分:1)

这是一个相关的问题:What should Xcode 6 gitignore file include?

它可以分为三类:

  1. IDE(Webstorm,Xcode)配置 文件,如:.idea /,IOS / ProjectName.xcodeproj / xcuserdata
  2. 版本控制工具(git,svn)文件,如:.git
  3. 其他文件,例如.DS_Store是OSX目录配置文件
  4. 我的答案是在实践中检查过的:

    ### SVN template
    .svn/
    ### Xcode template
    # 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
    *.xccheckout
    *.xcscmblueprint
    ### JetBrains template
    # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
    # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
    
    # User-specific stuff:
    .idea/workspace.xml
    .idea/tasks.xml
    .idea/dictionaries
    .idea/vcs.xml
    .idea/jsLibraryMappings.xml
    
    # Sensitive or high-churn files:
    .idea/dataSources.ids
    .idea/dataSources.xml
    .idea/dataSources.local.xml
    .idea/sqlDataSources.xml
    .idea/dynamic.xml
    .idea/uiDesigner.xml
    
    # Gradle:
    .idea/gradle.xml
    .idea/libraries
    .idea
    
    # Mongo Explorer plugin:
    .idea/mongoSettings.xml
    
    ## File-based project format:
    *.iws
    
    ## Plugin-specific files:
    
    # IntelliJ
    /out/
    
    # mpeltonen/sbt-idea plugin
    .idea_modules/
    
    # JIRA plugin
    atlassian-ide-plugin.xml
    # Crashlytics plugin (for Android Studio and IntelliJ)
    com_crashlytics_export_strings.xml
    crashlytics.properties
    crashlytics-build.properties
    fabric.properties
    ### TortoiseGit template
    # Project-level settings
    /.tgitconfig
    
    *.swp
    
    # node_modules/,Xcode and Webstorm will spend lots of time for indexing this dir
    node_modules/
    
    # ios/Pods,
    ios/Pods/
    
    # OS X temporary files that should never be committed
    .DS_Store
    src/components/.DS_Store
    
    # user personal info,for example debug info
    ios/ProjectName.xcodeproj/project.xcworkspace/
    ios/ProjectName.xcodeproj/xcuserdata
    
    # Podfile versions
    ios/Podfile.lock
    
    # Created by .ignore support plugin (hsz.mobi)
    

    希望它可以帮到你!

答案 5 :(得分:1)

值得注意的是react-native init <project-name>为您生成.gitignore文件。这可能是React Native当前工具和构建输出的最新版本。所以这应该是一个很好的起点。

使用react-native-cli 1.0.0和react-native 0.36.0生成以下.gitignore文件:

# OSX
#
.DS_Store

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
project.xcworkspace

# Android/IJ
#
*.iml
.idea
.gradle
local.properties

# node.js
#
node_modules/
npm-debug.log

# BUCK
buck-out/
\.buckd/
android/app/libs
android/keystores/debug.keystore