相关疑难解决方法(0)

Git响应'边带解复用器中的错误'

我设置了两台服务器(据我所知)完全一样.在其中一个上,使用git一直很好,但是在第二个上,我开始收到这个错误:

致命:远程端意外挂起
错误:边带解复用器出错

两者之间的一切都是相同的,包括.git/hooks/post-receive文件的内容.

配置中是否有一步我错过了什么地方?我已经尝试过两次重新启动回购,但无济于事.

我的收件后文件如下:

#!/ bin/sh
cd ..
env -i git reset --hard

git corruption

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

Git post-receive hook无效

我们使用带有中央仓库的git(使用Gitosis).我已经创建了一个post-receive挂钩,只要将更改推送到中央存储库,就会生成一封发送到dev邮件列表的电子邮件,并从git repo中的文档文件夹生成文档.

因此,在~git /我有一个目录,我们称之为'a',其中包含git repo的克隆.后接收挂钩看起来像:

#!/bin/bash
cd ~git/repositories/a.git
. ~git/post-receive-email &> /dev/null
( cd ~git/a && git pull &> ~git/pull_log.log && php ~git/a/scripts/generate_markdown_documentation.php &> ~git/doc_log.log )
Run Code Online (Sandbox Code Playgroud)

电子邮件脚本正在运行,但文档生成却没有.pull_log.log的内容是:

fatal: Not a git repository: '.'
Run Code Online (Sandbox Code Playgroud)

这让我觉得它没有改变到上面脚本第5行的正确目录.我错了吗?我怎样才能让它发挥作用?

编辑:我已按照回复中的建议更新了post-receive hook.该脚本现在是:

#!/bin/bash
function die {
  echo "$*" >&2; exit 1
}

function checkgit {
  [ -d "$1/.git" ] || die "$1 could not possibly be a git repo; $1/.git is not a dir"
}


cd ~git/repositories/a.git
. ~git/post-receive-email &> /dev/null
( set -x
checkgit …
Run Code Online (Sandbox Code Playgroud)

git bash gitosis githooks git-post-receive

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

致命:不是git存储库:'.git'错误

我创建了一个预提交钩子,它接受数据库转储并将其保存在我的应用程序/文件夹下的文件中,该文件也在git repo中,保存后我将文件添加到提交列表中.以下是我的预提交文件中的代码

    D:/xampp/mysql/bin/mysqldump -u root -pxyz --skip-extended-insert [database] > D:/xampp/htdocs/app/application/[database].sql

cd D:/xampp/htdocs/app/application
git add [database].sql
Run Code Online (Sandbox Code Playgroud)

我尝试直接通过命令提示符运行预提交代码,它没有任何错误,但当我尝试通过git bash提交代码时,我得到此错误

fatal: Not a git repository: '.git' 
Run Code Online (Sandbox Code Playgroud)

我假设它是因为预提交文件中使用的git命令,任何人都可以告诉我这个文件中有什么错误以及我应该如何修改它

git hook git-bash

11
推荐指数
1
解决办法
5802
查看次数

在bash脚本中执行git命令

我正在gitosis为中央存储库编写post-push hook

它将更新从中央存储库提取到测试环境

nano /var/git/repositories/holding.git/hooks/post-update

 #!/bin/bash

 cd /var/vh/holding;
 git reset --hard;
 git checkout testing;
 git pull;
Run Code Online (Sandbox Code Playgroud)

这是我在推送客户端后获得的(开发虚拟机)

# blah ...
Counting objects: 57, done.
Compressing objects: 100% (24/24), done.
Writing objects: 100% (30/30), 3.42 KiB, done.
Total 30 (delta 18), reused 0 (delta 0)
fatal: Not a git repository: '.'
fatal: Not a git repository: '.'
fatal: Not a git repository: '.'
fatal: Not a git repository: '.'
To git@cheby.ru:holding.git
   233b5a2..0f46cd8  testing -> testing
Run Code Online (Sandbox Code Playgroud)

显然,我试图告诉git,它应该在哪里拉动,但失败了.

在bash脚本中为指定的工作副本运行git命令的正确方法是什么?

git bash githooks

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

标签 统计

git ×4

bash ×2

githooks ×2

corruption ×1

git-bash ×1

git-post-receive ×1

gitosis ×1

hook ×1