gitignore是否具有特定于平台的定义?

gitignore是否具有特定于平台的定义?,git,gitignore,git-status,Git,Gitignore,Git Status,我在做Fedora 22。当我执行git status时,它会列出所有*.o文件。我不记得以前见过这种行为 我查看了项目的.gitginore文件,该文件是通过git clone交付的,它缺少*.o的规则。我想添加*.o,但我只想在非Windows平台上添加。Windows使用*.obj,因此不需要它。另外,*.o用于Windows上的某些程序(IIRC) 是否可以为非Windows平台指定*.o?如果是这样的话,怎么做?我做了一些研究(其中一个更权威的来源是),它看起来像是.o文件除了用于软件

我在做Fedora 22。当我执行
git status
时,它会列出所有
*.o
文件。我不记得以前见过这种行为

我查看了项目的
.gitginore
文件,该文件是通过
git clone
交付的,它缺少
*.o
的规则。我想添加
*.o
,但我只想在非Windows平台上添加。Windows使用
*.obj
,因此不需要它。另外,
*.o
用于Windows上的某些程序(IIRC)

是否可以为非Windows平台指定
*.o
?如果是这样的话,怎么做?

我做了一些研究(其中一个更权威的来源是),它看起来像是
.o
文件除了用于软件开发之外没有其他用途,因为它们是目标文件,不应该在版本控制中

因此,没有任何理由对
.o
文件进行版本设置。我将无条件地忽略所有
.o
文件,而不是尝试按平台分割
.gitignore
文件

是否可以为非Windows平台指定*.o?如果是,怎么做


对。将
*.o
放在生成它们作为构建碎片的任何非Windows平台用户ID的personal excludes文件中,或放在用于处理碎片的任何repo的
.git/info/exclude
中。我认为假设是,在任何平台上使用任何开发系统和工具的人们最清楚什么需要忽略,什么不需要忽略,并且可能在他们的个人列表中指定了那些,而不是期望所有的项目都能预测未来的工具链。

您正在查看哪个
.gitnignore
文件?为什么要在Windows上控制
*.o
文件?如果这些是生成的工件,那么似乎应该忽略它们。@Tim-Windows在生成过程中不使用
*.o
文件,因此它不是一个序列。另外,
*.o
是其他程序的有效文件扩展名。对于Windows,有一个关于
*.obj
工件的规则,所以这些临时文件会被表示出来。这正是我的感觉,我也不认为有任何方法可以获得特定于平台的
.gitignore
文件。@jww我很欣赏这个链接,但不应该促进对问题的有用解决方案的共享,即使它们与提问者的假设相矛盾?@Maximillian-这不是一个有用的解决方案。它只是提供你对这件事的意见。这不像是在真空中发生的,因为我给了你原因。假设是
*.o
文件是Windows上的临时工件(它们不是-Windows使用
*.obj
文件)。“答案”可能更适合作为评论。@jww您建议在Windows上的某些程序中使用
.o
文件,我引用的一个来源表明它们不是。如果您或其他任何人可以找到一个生成和使用
.o
文件而不是编译代码的程序,那么我的答案将是不正确的。对不起,我的回答对你没有帮助。谢谢。也许这就解释了为什么我在Fedora上看到这种行为:
*.o
以前出现在
.git/info/exclude
中,但在F22中被省略了。这可能是有原因的(比如一些程序,比如Ogg派生程序,开始使用扩展…)。