我正在研究一个生成大量二进制文件的C项目.我尝试将源保持在源代码管理之下.但是,我希望忽略二进制文件,而不必在创建新文件时将它们添加到gitignore文件中.这是一个各种沙箱,因此我在尝试新事物时创建了许多新的二进制文件.我可以在一个目录中构建我的所有二进制文件或给它们一个后缀,但我不喜欢这些原因.由于GCC自动在它生成的二进制文件上设置可执行位,我可以使用该标志来忽略它们吗?
我建议不要这样做.如果您需要在构建过程中或在运行时使用脚本会发生什么,但由于它具有可执行位,因此会意外地进行gitignored?如果其他人在不知道gitignore的情况下为您的项目做出贡献,这可能会造成混乱.您最好手动添加文件(或使用bin目录)来解决此问题.
话虽这么说,gitignore似乎不支持基于模式的文件忽略,但您可以自动执行手动添加可执行文件的过程.
如果您的.gitignore
文件可以被覆盖:
运行此命令以更新被忽略的文件: find -type f -executable | sed 's#^.##' > .gitignore
如果您的.gitignore
文件应保持完整:
.gitignore
应该仍然有效):git config core.excludesfile .auto_gitignore
find -type f -executable | sed 's#^.##' > .auto_gitignore
.auto_gitignore
,如果你想与他人分享,或添加.auto_gitignore
到.git/info/exclude
,如果你不这样做.请注意,如果您共享它,您的协作者也必须单独执行第1步.注意:如果由于您的find版本不支持而出现错误-executable
,请将其替换为-perm /111
.