【发布时间】:2012-03-29 03:53:55
【问题描述】:
我希望 git 在我的 XCode4 项目中忽略我的 UserInterfaceState.xcuserstate 文件,但是我应该将 .gitignore 文件放在哪里?,它是在 .git 文件夹中吗?还是出去? .git 与 ProjectName.xcodeproj 文件位于同一文件夹中
【问题讨论】:
我希望 git 在我的 XCode4 项目中忽略我的 UserInterfaceState.xcuserstate 文件,但是我应该将 .gitignore 文件放在哪里?,它是在 .git 文件夹中吗?还是出去? .git 与 ProjectName.xcodeproj 文件位于同一文件夹中
【问题讨论】:
您可以在项目的每个目录中都有一个.gitignore。
但是,最好的做法是在项目根目录中拥有一个 .gitignore 文件,并将您想要忽略的所有文件都放在其中,如下所示:
ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn
创建.gitignore 文件后,已更改或新进入存储库的忽略文件将不会显示为等待提交。
您还可以拥有一个全局本地 git 忽略文件,该文件将管理您的所有 git 存储库。
git config --global core.excludesfile ~/.gitignore_global
这种替代方法对于与项目无关的被忽略文件特别有趣,例如 IDE 相关文件等。
【讨论】:
在 git 中有忽略文件的方法:
~/.gitignore_global 路径下创建。 如果您想排除由操作系统或任何其他日志记录、兑现等工具生成的某些类型文件,这种方法很好。
.git/info/exclude 文件中。此文件下指定的规则将不会
已提交,这意味着它不会与其他人共享。 通常这种方法对于防止提交本地生成的文件很有用。例如,对于您的编辑器创建的文件。
.gitignore。 这种方法通常用于忽略特定存储库特定文件夹下的某些类型的文件。虽然此文件可以通过其他路径和其他存储库添加到版本控制中。
所以,我给你的建议是,如果你想在你的所有存储库中忽略你的特定文件 (UserInterfaceState.xcuserstate),最好的方法是使用全局 git ignore 方法。但是,如果您的文件仅在特定存储库中生成,您可以使用 per-repository git ignore 方法。
有关更多信息,您可以阅读 this 精彩的博文。并且可以建立每种语言特定的 git 忽略规则here。您可以使用this web site 为特定语言、工具或操作系统自动生成通用 git 忽略规则。
【讨论】:
你应该把 .gitignore 文件放到项目根目录下。
【讨论】:
我应该把
.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 文件中。
【讨论】:
您应该不将特定于工具的文件放入项目的 .gitignore 文件中 — 除非项目的每个开发人员都需要使用该工具。
相反,在您的主目录中创建您的个人全局 .gitignore 文件并激活它:
git config --global core.excludesfile ~/.gitignore
现在您可以将开发工具生成的任何文件放入您的.gitignore 文件中。
【讨论】:
通常,最佳做法是将.gitignore 文件包含在项目的根目录中
【讨论】: