git上的奇数钩子脚本执行

git上的奇数钩子脚本执行,git,hook,githooks,Git,Hook,Githooks,这有点奇怪,所以我在远程git repo hook脚本post receive中有一行: cd /path/to/my/deployed/app git reset --hard rm files/.development 从我的本地机器,我推到我的git回购——这就是奇怪的地方。在我的post接收结束时的那些行是在我的本地机器上执行的,而不是在我的远程服务器上执行的 很明显,我最终得到了这个错误: MacBook-Air:$ git push to-my-deployed-app Coun

这有点奇怪,所以我在远程git repo hook脚本post receive中有一行:

cd /path/to/my/deployed/app
git reset --hard
rm files/.development
从我的本地机器,我推到我的git回购——这就是奇怪的地方。在我的post接收结束时的那些行是在我的本地机器上执行的,而不是在我的远程服务器上执行的

很明显,我最终得到了这个错误:

MacBook-Air:$ git push to-my-deployed-app

Counting objects: 23, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (16/16), done.
Writing objects: 100% (16/16), 2.56 KiB, done.
Total 16 (delta 11), reused 0 (delta 0)
remote: warning: updating the current branch
remote: fatal: Not a git repository: '.'
remote: rm: cannot remove `files/.development': No such file or directory

就这样。。非常奇怪…

为什么您认为它是在本地运行的?每个错误之前的前缀
remote:
表示它来自远程。从这些错误来看,您的存储库路径似乎是错误的。事实上,如果您试图在钩子所在的存储库中运行git reset--hard,则不需要更改目录,钩子的当前工作目录将是该存储库的顶层。

为什么您认为它是在本地运行的?每个错误之前的前缀
remote:
表示它来自远程。从这些错误来看,您的存储库路径似乎是错误的。事实上,如果您试图在钩子所在的存储库中运行
git reset--hard
,则不需要更改目录-钩子的当前工作目录无论如何都将是该存储库的顶层。

如果您正在推送一个非裸存储库,并试图在推送后使用此钩子更新工作树,然后你应该考虑Git FAQ中链接的<代码>帖子更新< /代码>脚本。它通过在重置之前隐藏来处理脏的工作树(这样您至少有机会恢复直接在服务器上(Git之外)所做的任何更改)。感谢您的帮助。虽然我不需要担心我们的服务器上有一个脏树,因为它是一个实时的repo,那里没有任何开发人员,但每个人都只是推到那个实时的repo。我只想让我的钩子脚本正确执行——更新工作树。请看下面我对马克的最后评论。谢谢如果您推到非裸存储库并尝试使用此钩子在推送之后更新工作树,则应考虑Git FAQ中链接的<代码> POST UPDATE < /COD>脚本。它通过在重置之前隐藏来处理脏的工作树(这样您至少有机会恢复直接在服务器上(Git之外)所做的任何更改)。感谢您的帮助。虽然我不需要担心我们的服务器上有一个脏树,因为它是一个实时的repo,那里没有任何开发人员,但每个人都只是推到那个实时的repo。我只想让我的钩子脚本正确执行——更新工作树。请看下面我对马克的最后评论。谢谢嗯,这是有道理的,不应该cd'ing到一个目录,但不知道为什么cd到我的应用程序目录是错误的,因为if@David:这里的任何人都很难猜测,因为显然
/path/to/my/deployed/app
不是您服务器上的真实路径,我们看不到真正的目录里有什么…嗨,马克,谢谢你的帮助-我想我正在取得一些进展,但还是有点怪。因此,我删除了更改路径的额外步骤,现在得到了以下结果:总计5(增量3),重用0(增量0)远程:警告:更新当前分支远程:头现在为2968db5,标签“for”属性的小调整。但是-当我去服务器编辑我的文件时,我的更改不在那里?这里发生了什么?为什么服务器生成了该消息,但文件/workign副本没有更新?嗯,这是有道理的,不应该cd'ing到目录,但是,不确定为什么我的应用程序目录的cd错误,因为if@David:这里的任何人都很难猜到,因为显然
/path/to/my/deployed/app
不是您服务器上的真实路径,而且我们也看不到真实目录中有什么……嗨,马克,谢谢您的帮助-我想我正在取得一些进展,但还是有点怪。因此,我删除了更改路径的额外步骤,现在得到了以下结果:总计5(增量3),重用0(增量0)远程:警告:更新当前分支远程:头现在为2968db5,标签“for”属性的小调整。但是-当我去服务器编辑我的文件时,我的更改不在那里?这里发生了什么?为什么服务器生成了该消息,但没有更新文件/workign副本?