【问题标题】:.gitignore file, where should I put it in my xcode project?.gitignore 文件,我应该把它放在我的 xcode 项目的哪里?
【发布时间】:2012-03-29 03:53:55
【问题描述】:

我希望 git 在我的 XCode4 项目中忽略我的 UserInterfaceState.xcuserstate 文件,但是我应该将 .gitignore 文件放在哪里?,它是在 .git 文件夹中吗?还是出去? .gitProjectName.xcodeproj 文件位于同一文件夹中

【问题讨论】:

标签: xcode git gitignore


【解决方案1】:

您可以在项目的每个目录中都有一个.gitignore

但是,最好的做法是在项目根目录中拥有一个 .gitignore 文件,并将您想要忽略的所有文件都放在其中,如下所示:

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

创建.gitignore 文件后,已更改或新进入存储库的忽略文件将不会显示为等待提交。

您还可以拥有一个全局本地 git 忽略文件,该文件将管理您的所有 git 存储库。

git config --global core.excludesfile ~/.gitignore_global

这种替代方法对于与项目无关的被忽略文件特别有趣,例如 IDE 相关文件等。

【讨论】:

  • 这个 .gitignore 应该添加到原点还是你的 master/local-repo 副本中?
  • 本地(当然你会在某个时候将其推送到原点)。
【解决方案2】:

在 git 中有忽略文件的方法:

  1. 全局 git 忽略: - 在这种方法中,您的自定义规则将应用于您机器中的每个 git 目录。通常这个文件可能在~/.gitignore_global 路径下创建。 如果您想排除由操作系统或任何其他日志记录、兑现等工具生成的某些类型文件,这种方法很好。
  2. Per-repository git ignore: - 在这种方法中,您的自定义规则将应用于您机器中的特定 git 目录。可以将本地每个存储库规则添加到存储库中的 .git/info/exclude 文件中。此文件下指定的规则将不会 已提交,这意味着它不会与其他人共享。 通常这种方法对于防止提交本地生成的文件很有用。例如,对于您的编辑器创建的文件。
  3. 每个路径 git 忽略: - 在这种情况下,您的自定义规则将应用于特定的 git 存储库子路径。您可以在特定存储库的任何子路径中创建.gitignore这种方法通常用于忽略特定存储库特定文件夹下的某些类型的文件。虽然此文件可以通过其他路径和其他存储库添加到版本控制中。

所以,我给你的建议是,如果你想在你的所有存储库中忽略你的特定文件 (UserInterfaceState.xcuserstate),最好的方法是使用全局 git ignore 方法。但是,如果您的文件仅在特定存储库中生成,您可以使用 per-repository git ignore 方法。

有关更多信息,您可以阅读 this 精彩的博文。并且可以建立每种语言特定的 git 忽略规则here。您可以使用this web site 为特定语言、工具或操作系统自动生成通用 git 忽略规则。

【讨论】:

    【解决方案3】:

    你应该把 .gitignore 文件放到项目根目录下。

    【讨论】:

      【解决方案4】:

      我应该把.gitignore 文件放在哪里?它在.git 文件夹中吗?

      .git 文件夹中没有 .gitignore
      然而,这是一个 .git/info/exclude 文件,它允许您在本地排除文件,通常是当您只想排除此特定 repo 的文件时(使用 alias like this one):

      git config alias.exclude "!sh -c 'echo \"$1\" >> .git/info/exclude' -"
      git exclude UserInterfaceState.xcuserstate
      

      如果您需要为所有类似项目排除此文件,如his answer 中提到的Elnur Abdurrakhimov,请全局排除它。

      echo UserInterfaceState.xcuserstate >> ~/.gitignore
      

      但是,正如“Do we need to check in *.xcuserstate?”中提到的,如果它是一个 type 应该被该 repo 的任何用户忽略的文件,我实际上会在顶部设置一个 .gitignore repo,内容类似于:

      *.xcuserstate 
      

      这样,该 repo 的任何用户甚至都不会意识到这个文件的存在和生成(无论它的名称是什么):它永远不会出现在 git status 中。

      或者您可以完全ignore xcuserdata/(在全局.gitignore 中,或在版本化的generic GitHub Objective-C.gitignore 文件中。

      【讨论】:

      • 你是GIT的传奇!你的答案总是最有用的。
      • @JadChahine 谢谢。很高兴能提供帮助(至少,写下这些答案可以帮助我学习 git)
      • @tymac 不完全;)我只是定期访问(meta.stackexchange.com/questions/122976/…
      【解决方案5】:

      您应该将特定于工具的文件放入项目的 .gitignore 文件中 — 除非项目的每个开发人员都需要使用该工具。

      相反,在您的主目录中创建您的个人全局 .gitignore 文件并激活它:

      git config --global core.excludesfile ~/.gitignore
      

      现在您可以将开发工具生成的任何文件放入您的.gitignore 文件中。

      【讨论】:

        【解决方案6】:

        通常,最佳做法是将.gitignore 文件包含在项目的根目录中

        【讨论】:

          猜你喜欢
          • 2016-05-23
          • 1970-01-01
          • 1970-01-01
          • 2010-12-01
          • 2018-09-28
          • 2019-10-04
          • 1970-01-01
          • 1970-01-01
          • 2020-09-30
          相关资源
          最近更新 更多