Git:User->Server->hook post rec->push to Live Server "Fatal: empty ident <push@blabla.(none)) not allowed" 推送时尽管设置了标识
Git:User->Server->hook post rec->push to Live Server "Fatal: empty ident <push@blabla.(none)) not allowed" when push despite having identity set
我收到这个错误:
架构和工作流程是这样的:
1)开发者通过ssh推送到远程repo(dev server)->
2) 开发服务器有一个 post 接收挂钩,它通过 ssh->
在实时服务器上调用 bash 脚本
#!/bin/bash
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
# Use this if-sentence to only update live server if branch is the wanted branch, e.g. master or stable
if [[ "desarrollo" == "$branch" ]]; then
# Fetch this branch from live-server
ssh push@mpdvsweb-test.jusbaires.gov.ar '/bin/gitmirror'
fi
done
3)Live服务器执行从开发服务器获取数据的脚本->
#!/bin/bash
cd /var/www/penal_test_git
git fetch git-repo
git merge -m 'Overwriting live server' -s recursive -X theirs git-repo/desarrollo
4) 我在每个开发人员的机器上都收到以下错误(为我们设置了 git 配置 --global 但它不起作用,我也尝试为存储库设置它但它没有也不工作)
什么可能失败了?
git config --local -l
returnsuser.name和user.email和git config -l
returnsuser.name和user.email 两次,也许一次是局部的,一次是全局的。在另一台开发机器上,全局是唯一的一组,也没有工作
我解决了它,我改变了三个东西并且它起作用了。首先我删除了本地 repo 身份,然后我重新定义了全局配置(我不知道这是否有所不同,因为我已经正确配置了全局配置)。
然后,我不得不更改我的实时服务器上的 bash 以获取 --all,否则如果没有该标志,如果有人直接编辑实时服务器上的文件,则会在开发服务器的挂钩执行它时导致冲突合并不会让合并发生,这样一切都会被覆盖:
#!/bin/bash
cd /var/www/penal_test_git
git fetch --all
git reset --hard git-repo/desarrollo
最后,文件有 root 用户权限而不是 www-data 权限,因为另一个开发人员更改了它,并且不允许使用获取覆盖文件。这是另一个错误的一部分,但它有助于使其正常工作。
我收到这个错误:
架构和工作流程是这样的:
1)开发者通过ssh推送到远程repo(dev server)-> 2) 开发服务器有一个 post 接收挂钩,它通过 ssh->
在实时服务器上调用 bash 脚本#!/bin/bash
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
# Use this if-sentence to only update live server if branch is the wanted branch, e.g. master or stable
if [[ "desarrollo" == "$branch" ]]; then
# Fetch this branch from live-server
ssh push@mpdvsweb-test.jusbaires.gov.ar '/bin/gitmirror'
fi
done
3)Live服务器执行从开发服务器获取数据的脚本->
#!/bin/bash
cd /var/www/penal_test_git
git fetch git-repo
git merge -m 'Overwriting live server' -s recursive -X theirs git-repo/desarrollo
4) 我在每个开发人员的机器上都收到以下错误(为我们设置了 git 配置 --global 但它不起作用,我也尝试为存储库设置它但它没有也不工作)
什么可能失败了?
git config --local -l
returnsuser.name和user.email和git config -l
returnsuser.name和user.email 两次,也许一次是局部的,一次是全局的。在另一台开发机器上,全局是唯一的一组,也没有工作
我解决了它,我改变了三个东西并且它起作用了。首先我删除了本地 repo 身份,然后我重新定义了全局配置(我不知道这是否有所不同,因为我已经正确配置了全局配置)。 然后,我不得不更改我的实时服务器上的 bash 以获取 --all,否则如果没有该标志,如果有人直接编辑实时服务器上的文件,则会在开发服务器的挂钩执行它时导致冲突合并不会让合并发生,这样一切都会被覆盖:
#!/bin/bash
cd /var/www/penal_test_git
git fetch --all
git reset --hard git-repo/desarrollo
最后,文件有 root 用户权限而不是 www-data 权限,因为另一个开发人员更改了它,并且不允许使用获取覆盖文件。这是另一个错误的一部分,但它有助于使其正常工作。