git 工作目录未反映更改

git working directory not reflecting changes

我希望我的 git 存储库与我的工作目录位于不同的目录中,因此我使用以下命令创建了一个存储库:

$ cd mysite.git/
$ git init --bare
Initialized empty Git repository in /home/git/mysite.git
$ git config core.bare false
$ git config core.worktree /home/mysite/public_html
$ git config receive.denycurrentbranch ignore
$ cat > hooks/post-receive
#!/bin/sh
export GIT_DIR=/home/git/mysite.git
export GIT_WORK_TREE=/home/mysite/public_html
git checkout -f
^D
$ chmod +x hooks/post-receive

我似乎能够毫无错误地从存储库中推送和拉取,但工作目录没有反映推送的更改。

如果我这样做

$ git status

它表明我的更改已提交,但随后已从工作目录中删除。

此配置直到最近才为我的团队工作,我不确定如何追踪可能发生的更改。我已经确定文件权限似乎是正确的。我不确定还要检查什么。

谁能帮我弄清楚为什么我的配置导致工作目录无法反映已提交的更改?

"Bare" 存储库没有工作树。也许 this 会有帮助?

您需要 'clone' 裸仓库。然后你可以从克隆推送到裸仓库,从裸仓库拉到克隆。

原来我的repo目录的权限是正确的,但是我的工作目录的权限不对。我必须确保正在执行推送的用户可以写入工作目录。