Git为什么更改不反映在远程存储库中?

时间:2017-03-23 09:12:08

标签: git

我正在尝试设置推送以部署在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

推送成功,但更改并未反映在远程仓库上。 我做错了什么?

1 个答案:

答案 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试图找到的路径的一部分,因此就是错误。