默认情况下,如何在git中设置全局可执行的bash文件?

问题描述

在 git 中,当我提交 bash 文件时,我希望这些文件可以像这个命令一样执行

git update-index --chmod=+x <file>

但我希望它在认情况下全局设置。

认情况下有没有这样做?

解决方法

不,没有任何方法可以做到这一点。在 Unix 系统上,Git 尊重存储库中文件的可执行位。因此,在这样的系统上,由于您已在工作树中将它们设置为可执行文件,因此它们将在 Git 中被自动跟踪为可执行文件。

如果您使用的是 Windows,则没有可执行位,因此您必须手动更新它们。您可以尝试使用适用于 Linux 的 Windows 子系统,它有一个可执行位,因此您可以查看那里的存储库并使用它。

默认情况下不存在此功能,因为 (a) 很难实现,因为它需要凭直觉判断哪些文件是 shell 脚本(这很重要)和 (b) 有许多 shell 脚本不会自己跑是安全的。如果您知道这适合您的项目,您可以编写一个 shell 脚本来将您的所有 shell 脚本设置为默认可执行。