如何通过 gradle 设置 git 钩子可执行文件
how to set git hook executable via gradle
TLDR:如何通过 Gradle 添加执行权限/设置可执行文件到 git 挂钩脚本
我正在与一个团队一起开发一个 Android 应用程序,并被指示实施一个公司范围的预推送脚本作为 git 挂钩。
我在项目根目录下添加了一个带有脚本的pre-push文件,并添加了一个复制脚本,将其复制到hooks文件夹中。
我尝试添加
android {
compileSdkVersion 27
copy {
from "../pre-push"
into "../.git/hooks"
}
tasks.create(name: 'gitExecutableHooks') << {
Runtime.getRuntime().exec("chmod -R +x .git/hooks/");
}
defaultConfig {
...
}
}
文件已复制到正确位置,但我收到警告
.git/hooks/pre-push' hook was ignored because it's not set as
executable.
当然,git 挂钩不会执行。
(P.S。这在 windows 机器上按预期工作,仅在 MacOS 和 Linux 机器上失败)
您应该设置正确的权限。
copy {
from "../pre-push"
into "../.git/hooks"
fileMode 0777
}
这应该可以解决您的问题。
TLDR:如何通过 Gradle 添加执行权限/设置可执行文件到 git 挂钩脚本
我正在与一个团队一起开发一个 Android 应用程序,并被指示实施一个公司范围的预推送脚本作为 git 挂钩。
我在项目根目录下添加了一个带有脚本的pre-push文件,并添加了一个复制脚本,将其复制到hooks文件夹中。
我尝试添加
android {
compileSdkVersion 27
copy {
from "../pre-push"
into "../.git/hooks"
}
tasks.create(name: 'gitExecutableHooks') << {
Runtime.getRuntime().exec("chmod -R +x .git/hooks/");
}
defaultConfig {
...
}
}
文件已复制到正确位置,但我收到警告
.git/hooks/pre-push' hook was ignored because it's not set as executable.
当然,git 挂钩不会执行。
(P.S。这在 windows 机器上按预期工作,仅在 MacOS 和 Linux 机器上失败)
您应该设置正确的权限。
copy {
from "../pre-push"
into "../.git/hooks"
fileMode 0777
}
这应该可以解决您的问题。