git工作目录没有反映变化

时间:2015-02-23 23:53:10

标签: git

我希望我的git repo与我的工作目录位于一个单独的目录中,所以我使用以下命令创建了一个repo:

$ 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

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

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

有人可以帮我弄清楚为什么我的配置导致工作目录不能反映提交的更改吗?

2 个答案:

答案 0 :(得分:1)

事实证明,我的repo目录中的权限是正确的,但我的工作目录中的权限却没有。我必须确保正在执行推送的用户可以写入工作目录。

答案 1 :(得分:0)

“Bare”回购没有工作项。也许this会有帮助吗?

你需要'克隆'裸仓库。然后你可以从克隆推送到裸仓库,然后从裸仓库中拉出来进入克隆。