我已经把我的git的工作结构如下(由于建议在另一个问题git : Small project work)git的钩权限问题
/live/website
|
|
/path/to/staging (bare)
| |
| |
dev1 dev2
目前,无论DEV1和DEV2,推动项目的/path/to/staging repo
。我在/ path/to/staging中有一个钩子,它会自动从我的/ live /网站触发git pull
。这样,我有一个文件的工作副本。
另外/path/to/staging (bare)
被初始化为share = 0777,所以我知道这个份额不是问题。此外,我已将所有文件CHMODED到777并设置棒位。
我创建了/ live /网站回购为user : root
。不过,我在dev1中创建了回购作为user : dev1
。我可以在DEV1微调,但是当我尝试从DEV1推回购,这是我所面临的问题:
error: Couldn't set refs/remotes/origin/master
From /path/to/staging
! 8b4fddc2 .. e2a0b21 master -> origin/master (unable to update local ref)
To path/to/staging
8c5fddc2 .. e2a0b21 master -> master
基本上,我没有看到文件,成功地转移到/现场/网站。我认为这个问题是由于我执行的代码为user : dev1
。但是,当我浏览到/live/websit
e并手动执行git pull
作为user : root
时,它成功地取消了由dev1所做的更改并更改了工作文件。
有人可以推荐如果有办法解决这个问题吗?因为它击败了自动挂钩的目的...
别的东西,我认为做的是钩,我想改变用户的:
su root
password
然而,在执行时,我不要以为我在提示符处输入密码,因为我收到错误消息是:
hooks/post-receive: line 18: password: command not found
编辑,
另外,有人可以建议一种方式从推回去?并获得以前的文件状态?
Rudi:我看着那个文件,它说,我只能通过做sudo visudo来修改。但是,当我尝试执行该命令时:`sudo:visudo:command not found`。所以编辑是我遇到的问题。就git目录结构而言,你知道为什么我在执行pull时遇到问题吗?我的意思是,`/ live/website`是一个共享库。我保证,我通过做`git repo-config core来做到这一点。sharedRepository true` – g1t 2010-12-09 08:26:59