如何在Git中忽略与容器目录同名的文件?

3

名为“project”的文件是构建的结果,它生成一个与容器目录同名的二进制文件:

project/
    src/
    main.c
    project <-- binary file, same name as container directory

更通俗易懂地说,如何忽略与其容器目录同名的文件?请记住,如果“项目”目录更名,则生成的构建文件名称也会改变。

2个回答

4
要想匹配文件名与其所在目录相同的文件,您需要一种比 .gitignore 使用的 shell 通配符更强大的语言,例如带有反向引用的正则表达式。
如何在 .gitignore 中使用正则表达式的问题曾经被问过(示例),答案始终是“你不能”。
习惯于当您重命名一个目录时需要更新您的 .gitignore。

1
哦,那真是太遗憾了 :( 如果允许使用正则表达式,一个简单的/(\w+)/\1就可以解决这个问题。 - marcio

2
您可以在.gitignore文件中指定以Git根目录开头的路径。因此,对于您的示例,您可以将以下内容放置在文件中:
/project/project

在你的.gitignore文件中。我不确定是否有一种方法可以在git中查看存储库名称并忽略同名文件,但由于看起来你正在使用脚本(或者makefile或其他)来构建你想要保留在存储库中的内容,因此你应该能够从那个脚本中写入.gitignore。类似这样的东西:

echo $projName"/"$projName > .gitignore

这将起作用。您需要根据您的makefile/script所在的位置指定.gitignore的位置。


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