小编zan*_*ona的帖子

Git - 带有 git pull 的 post-receive 钩子“找不到有效的 git 目录”

这很奇怪,但是在设置 git 存储库并使用以下命令创建 post-receive 挂钩时:

echo "--initializing hook--"
cd ~/websites/testing
echo "--prepare update--"
git pull
echo "--update completed--"
Run Code Online (Sandbox Code Playgroud)

钩子确实运行了,但它永远无法正确运行 git pull :

6bfa32c..71c3d2a  master -> master
--initializing hook--
--prepare update--
fatal: Not a git repository: '.'
Failed to find a valid git directory.
--update completed--
Run Code Online (Sandbox Code Playgroud)

所以我现在问自己,如何让钩子用 post-receive 更新克隆?

在这种情况下,运行进程的用户是相同的,它的所有内容都在用户文件夹中,所以我真的不明白......因为如果我手动进入

cd ~/websites/testing
git pull
Run Code Online (Sandbox Code Playgroud)

它工作没有任何问题......

对此的任何帮助将不胜感激

非常感谢

unix git hook

18
推荐指数
2
解决办法
1万
查看次数

UNIX - 如何授予用户对另一个用户的权限,这样我就不需要 sudo 或输入密码?

我有 2 个用户有问题

git用户 - 用于 gitosis - 所以它是一个无密码用户,只能通过 root 访问...

用户用户 - 我的文件所在的位置

所以我想做的是授予用户git权限以导航到这样的 luddico 文件夹

git@domain.me:~/respositories# cd /home/user/websites/domain.com
Run Code Online (Sandbox Code Playgroud)

然后在用户用户文件(任何文件/文件夹)中执行任何操作,这样我就可以例如

git@domain.com:/home/user/websites/domain.com#  git pull
Run Code Online (Sandbox Code Playgroud)

因为实际上上面提到的操作返回:

error: cannot open .git/FETCH_HEAD: Permission denied
Run Code Online (Sandbox Code Playgroud)

所以当我要求执行这样的操作时,它会请求 git 的密码,顺便说一句,没有任何密码,或者立即取消它

所以,我怎么可以配置用户的git有像在用户root /管理员权限的用户 ,而不需要提供命令之前任何密码或sudo?就像如果它是根一样

  • 如果有一种方法可以只允许从git用户的特定命令,那就更好了

提前致谢

unix permissions git hook

5
推荐指数
1
解决办法
9976
查看次数

标签 统计

git ×2

hook ×2

unix ×2

permissions ×1