2015-02-23 193 views
1

我希望我的混帳回購協議是從我的工作目錄中一個單獨的目錄,所以我用下面的命令做了回購:不能反映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 

它表明我的變化COMMITED,但後來從工作目錄中刪除。

這個配置直到最近都在爲我的團隊工作,而且我不確定如何追查可能發生的變化。我確定文件權限似乎是正確的。我不知道還有什麼要檢查。

有人能幫我找出爲什麼我的配置導致工作目錄不能反映提交的更改嗎?

回答

1

事實證明,我的repo目錄中的權限是正確的,但我的工作目錄中的權限不是。我必須確保工作目錄可以被推送的用戶寫入。

0

「裸」回購沒有工作區。也許this會有幫助?

您需要'克隆'裸回購。然後你可以從克隆推入裸倉庫,並從裸倉庫拖入克隆。

+0

我試圖在http://caiustheory.com/automatically-deploying-website-from-remote-git-repository/ 通過類似的建議遠程混帳回購協議,以建立一個網站的自動部署 是它如果不將初始化倉庫初始化爲裸露,可以將git倉庫放在與工作目錄不同的目錄中?我還需要推送到回購站來自動提交更改並更新工作目錄。 – phaonica 2015-02-24 00:22:38

+0

推入回購並不會改變任何工作目錄。但是你可以做你想要的一部分。要將git-dir從工作樹中分離出來,請使用'--separate-git-dir '。 – cdunn2001 2015-02-24 01:50:13