如何让.gitignore忽略没有文件扩展名的编译文件?

21

可能是重复的问题:
不包括二进制文件的gitignore

编辑: 重复 不包括二进制文件的gitignore

当您使用ghc --make test.hs编译Haskell文件(test.hs)时,会生成test.hitest。我只想将源文件test.hs添加和提交到仓库中,同时将test.hitest保留在源文件相同的目录中但不纳入版本控制。其中test是个问题,如何指定.gitignore忽略没有扩展名的已编译文件?


2
echo "*.a" >> .gitignore 和使用 ghc --osuf a --make test.hs 进行编译。 - Justin ᚅᚔᚈᚄᚒᚔ
谢谢 @Eric Wilson,我先搜索了一下但没有看到那个。 - Kurtosis
1
@KingCrunch,嘿,没错,但我更喜欢在可能的情况下使用懒惰的“git add .”。 - Kurtosis
2
git add -A 添加所有更改。git add . 不够。 - Adam Dymitruk
这实际上不是一个重复的内容。 - alinsoar
1个回答

5
只需将文件名添加到您的.gitignore文件中即可。例如:
$ git ls-files --other --exclude-standard
test
$ echo test > .gitignore
$ git ls-files --other --exclude-standard
$

.gitignore 不考虑文件扩展名,它只匹配规则。


4
谢谢,我考虑过了,但我现在还处于这个项目的初始阶段,将会有很多这样的文件名。如果没有更好的选择,我会采用这种方式。顺便说一句,我不知道ls-files命令,尽管当我运行它时,输出中仍包括.hs和.txt文件。我会查看man页面并进行一些尝试。 - Kurtosis
我只是使用了ls-files,因为它的输出相对较少,对于这个特定的例子来说非常好。如果你无法通过名称或模式来识别文件,那你基本上就没什么办法了。如果你可以把所有的输出文件放在一个特定的目录中,你就可以忽略该目录,或者在构建过程中编写程序生成.gitignore文件。 - larsks
我认为这也会忽略任何包含“test”的目录路径... - obiwanjacobi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接