我正在尝试设置推送以部署在vps(digitalocean droplet)上,为此我创建了一个repo并使用 -(void) initializeBrowswerAndStartSearch
{
// Make EAWiFiUnconfiguredAccessoryBrowser object nil and reinitiate ,start searching again
_browser = nil;
_browser = [[EAWiFiUnconfiguredAccessoryBrowser alloc] initWithDelegate:self queue:nil];
[_browser startSearchingForUnconfiguredAccessoriesMatchingPredicate:nil];
}
启动它
--bare
现在,在repo
的hooks目录中创建了一个名为 cd /var
mkdir demorepo && cd demorepo
mkdir demo.git && cd demo.git
git init --bare
的钩子
post-receive
使用
设置权限#!/bin/sh
git --work-tree=/var/www/demo --git-dir =/var/demorepo/demo.git checkout -f
在我的本地计算机上,我在 chmod +x post-receive
文件夹中创建了一个包含git init
的新回购,并将远程仓库添加为\www\demo.git
live
问题 现在我在本地仓库中创建了一个新文件并使用
推送它git remote add live ssh://root@extragrip.in/var/demorepo/demo.git
推送成功,但更改并未反映在远程仓库上。 我做错了什么?
答案 0 :(得分:1)
为了确保挂钩正常工作,您应该通过手动执行命令来“调试”它们。
如果/当你让它们手动工作时,你可以考虑将它们放入钩子脚本中。
在这个特定的问题中,我希望命令失败并显示以下错误信息:
fatal: Not a git repository: '=/var/demorepo/demo.git'
原因是您在--git-dir
参数后无意中添加了空格。
git --work-tree=/var/www/demo --git-dir =/var/demorepo/demo.git checkout -f
^
|
+-- here
删除那个空间,你应该好好去。
您也可以删除等号,因为以下两个变体是相同的:
--git-dir=x
--git-dir x
但你无法将两者结合起来,因为等号是git试图找到的路径的一部分,因此就是错误。