问题描述
在 git 中,当我提交 bash 文件时,我希望这些文件可以像这个命令一样执行
git update-index --chmod=+x <file>
但我希望它在默认情况下全局设置。
默认情况下有没有这样做?
解决方法
不,没有任何方法可以做到这一点。在 Unix 系统上,Git 尊重存储库中文件的可执行位。因此,在这样的系统上,由于您已在工作树中将它们设置为可执行文件,因此它们将在 Git 中被自动跟踪为可执行文件。
如果您使用的是 Windows,则没有可执行位,因此您必须手动更新它们。您可以尝试使用适用于 Linux 的 Windows 子系统,它有一个可执行位,因此您可以查看那里的存储库并使用它。
默认情况下不存在此功能,因为 (a) 很难实现,因为它需要凭直觉判断哪些文件是 shell 脚本(这很重要)和 (b) 有许多 shell 脚本不会自己跑是安全的。如果您知道这适合您的项目,您可以编写一个 shell 脚本来将您的所有 shell 脚本设置为默认可执行。