为什么git post-receive hook不能在repo中找到单个文件?

时间:2017-07-28 01:36:12

标签: git ubuntu-16.04 githooks git-post-receive

我有这个git post-receive hook

#!/bin/sh
git --work-tree=/var/www/myproject --git-dir=/home/git/myrepo.git checkout -f -- api.py

本地仓库只包含一个.git文件夹和一个api.py文件。

当我推送项目时,我收到以下错误:

$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 272 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: error: pathspec 'myrepo/api.py' did not match any file(s) known to git.

我还尝试将完整文件路径myrepo/api.py添加到git hook中,它为该路径提供了相同的错误。

引用我试图移动的文件的正确方法是什么?远程计算机是ubuntu 16.04。

谢谢!

1 个答案:

答案 0 :(得分:0)

git status替换结帐,看看你是否在正确的分支上。

尝试指定分支:

 git --work-tree=/var/www/myproject --git-dir=/home/git/myrepo.git checkout master -f -- api.py