相关疑难解决方法(0)

从git post-update钩子调用'git pull'

我有一个使用gitolite设置的中央git repo.

我想设置一个钩子,这样每当用户推送到repo时,它会执行其他地方的拉动,然后进行一些自动化测试.

到目前为止,我只想表现它.

在hooks目录中,我在更新后创建了以下脚本名称:

#!/bin/sh  
cd /home/git/www/epicac
git pull
Run Code Online (Sandbox Code Playgroud)

当我使用./post-update调用此脚本时,它完全符合我的要求.

但是,每当我挂钩时自动调用它,我得到:致命:不是git存储库:'.'

知道为什么会这样吗?

git shell githooks

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

使用`git --git -dir/path/to/git pull/path/to/other/bare-git master`不会自动更新工作树.为什么不?

我发现git有一种特殊的行为,我每次都可以在我的机器上重现它.

如果我有两个本地存储库,一个裸存在文件夹内express.git,另一个非裸存在文件夹中的工作树,两个都在同一个父文件夹中,我可以git pull ../express.gitexpress文件夹内部执行命令.这会自动更新内部的一切express.

但是,如果我git --git-dir /home/cisw470p/stu006/express/.git pull /home/cisw470p/stu006/express.git master从位于任一git存储库中的位置运行命令,则expressrepo将提取更改,但不会自动更新工作树.然后我必须运行git add .以添加所有更改,然后从内部进行另一次提交express,现在一切都很好.

为什么使用--git-dir选项的命令的长版本不能自动更新工作树express?有这个原因,还是我发现了一个错误?

编辑:我只是再次尝试,但编辑了一个不同的文件,现在它工作.我完全迷失了.

git

6
推荐指数
1
解决办法
6480
查看次数

在裸存储库中获取"致命:此操作必须在工作树中运行吗?"

谈到git,我是新手,我在这里看了一些视频教程

看完这些教程后,我尝试使用ssh与我的朋友建立一个git repo

注意:

  • 我们正在使用mac雪豹
  • Git版本是1.7.5.4

我设法在一个文件夹中设置我的代码,让我们说"folder1"使用

git init
Run Code Online (Sandbox Code Playgroud)

哪个有我的代码文件.

然后我在我的朋友机器上创建一个空的存储库让我们说' folder2',然后我使用了folder2一个裸存储库

git init --bare --shared
Run Code Online (Sandbox Code Playgroud)

现在我想将共享仓库设置为folder1代码的存储库之后,我尝试使用ssh在裸仓库上添加远程仓库

git remote add origin myFriend@hisIp:/LocationToFile
Run Code Online (Sandbox Code Playgroud)

在此之后,我推送了代码,这给了我一个成功的消息

现在的问题是git repo' folder2'仍然显示一个空的repo(带有空存储库的文件夹)并且我不能执行git操作,folder2即使我做" git status",我得到" fatal: This operation must be run in a work tree"

git version-control github

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

标签 统计

git ×3

githooks ×1

github ×1

shell ×1

version-control ×1