为Git服务器设置默认仓库根路径
解决OSX Git服务器简化克隆路径的方法
方法1:通过SSH配置+GIT_PROJECT_ROOT实现
这是最可靠的方案,通过配置SSH服务为git用户指定默认仓库根目录:
配置git-shell作为登录shell
先确认git-shell路径(OSX下通常为/usr/bin/git-shell),如果该路径不在/etc/shells中,先添加:echo "/usr/bin/git-shell" | sudo tee -a /etc/shells接着将git用户的登录shell改为
git-shell(限制git用户仅能执行Git相关操作,提升安全性):sudo chsh -s /usr/bin/git-shell git修改SSH服务配置
编辑SSH配置文件/etc/ssh/sshd_config:sudo nano /etc/ssh/sshd_config在文件末尾添加以下内容:
Match User git ForceCommand git-shell -c "$SSH_ORIGINAL_COMMAND" SetEnv GIT_PROJECT_ROOT=/Users/gitMatch User git:仅对git用户应用后续配置ForceCommand:强制git用户只能执行git-shell命令,禁止交互式登录SetEnv:指定Git的默认仓库根目录为/Users/git,后续Git操作会自动在此目录下查找仓库
重启SSH服务
执行命令重启OSX的SSH服务:sudo launchctl stop com.openssh.sshd sudo launchctl start com.openssh.sshd
方法2:修改git用户HOME目录(备选)
如果不想调整SSH配置,可直接将git用户的HOME目录设置为/Users/git(若未设置):
sudo dscl . -change /Users/git NFSHomeDirectory /原HOME路径 /Users/git
设置后可通过ssh://git@[local-server-ip]/~/myrepo.git克隆,但需额外输入~,要完全省略路径前缀仍推荐方法1。
验证测试
现在用简化命令测试克隆:
git clone ssh://git@[local-server-ip]/myrepo.git
配置正确的话,该命令会直接指向/Users/git/myrepo.git,无需输入完整路径。
内容的提问来源于stack exchange,提问作者user2966608
相关产品推荐
相关产品推荐

