Windows版SourceTree推送前如何设置文件可执行权限位?
How to Set Executable Permissions for Files Before Pushing with SourceTree on Windows
如果你在Windows上用SourceTree管理要部署到Linux的脚本(比如*.sh、*.py这类),肯定被这个问题头疼过——推送到远程Linux服务器后脚本没有可执行权限,每次都得打开终端敲命令,效率太低了。下面我先回顾已知的命令行解决办法,再教你设置右键快捷操作,彻底简化这个流程!
一、已知的终端命令解法
因为Windows文件系统本身没有Linux的权限位概念,Git是通过git update-index命令来模拟设置可执行权限的:
- 打开SourceTree的终端:点击顶部菜单栏的「终端」按钮,或者右键仓库选择「打开终端」
- 单个文件设置:
git update-index --chmod=+x path/to/your/script.sh - 批量处理同类型脚本(比如所有.sh文件):
find . -name "*.sh" -exec git update-index --chmod=+x {} \; - 执行完后,你会在SourceTree的文件列表里看到该文件的权限变更记录,正常提交推送即可,远程Linux拉取后脚本就具备可执行权限了。
二、设置SourceTree右键快捷操作(一键搞定)
SourceTree支持自定义动作,我们可以把权限设置命令做成右键菜单,不用每次手动敲命令:
- 打开SourceTree,点击顶部菜单栏的「工具」→「选项」→「自定义动作」
- 点击「添加」按钮,填写以下信息:
- 动作名称:可以填「设置可执行权限」(或者英文「Set Executable Permission」)
- 脚本路径:找到你的
git.exe路径,一般在SourceTree自带的Git目录里,比如C:\Program Files\Git\bin\git.exe(不确定的话,在终端输入where git就能查到) - 参数:输入
update-index --chmod=+x "$FILEPATH"($FILEPATH是SourceTree的内置变量,会自动替换成你右键选中的单个文件路径) - 可选:给动作选个图标,方便快速识别
- 勾选「显示在文件菜单中」和「显示在上下文菜单中」
- 点击「确定」保存设置
- 现在回到SourceTree的文件列表,右键点击需要设置权限的脚本,就能看到你添加的「设置可执行权限」选项,点击它自动完成权限设置,直接提交推送就好!
批量设置多个文件的小技巧
如果需要一次性给多个脚本设置权限,只要把自定义动作的参数改成update-index --chmod=+x "$FILEPATHS"(注意是复数的$FILEPATHS),这样你选中多个文件后右键点击,就能一键批量设置权限啦。
内容的提问来源于stack exchange,提问作者Edward Ned Harvey
相关产品推荐
相关产品推荐

