Git post-receive checkout to website not purging folder

时间:2013-06-06 10:07:04

标签: git

我的当前工作流设置在我的网络服务器上有一个git repo,后面有一个钩子,检查我的分支masterstaging到他们各自的文件夹,master是我的现场和staging我的演出。

在重命名文件之前一切顺利,如果我将文件夹js更改为javascript,例如,当钩子检出我的分支时,它将创建文件夹{{1}但保留文件夹javascript及其先前提交的内容。我确定git已检测到文件已被重命名,因为当我在本地检出文件时文件已经消失。

这是我的收件后挂钩:

js

2 个答案:

答案 0 :(得分:0)

当您使用 -f 检出分支强制时,更改可能未正确提交。请先尝试git commit,以便它会正确提交更改,然后尝试签出分支。

我认为这种方法可行

答案 1 :(得分:0)

我目前的收发后钩子现在看起来像这样:

#!/bin/sh
GIT_WORK_TREE=/var/www/mysite/live git clean -df
GIT_WORK_TREE=/var/www/mysite/live git checkout -f master
GIT_WORK_TREE=/var/www/mysite/staging git clean -df
GIT_WORK_TREE=/var/www/mysite/staging git checkout -f staging

这将删除git跟踪的所有文件,并以递归方式执行。如果我重命名文件或文件夹,它将在下次推送到服务器时被“清除”。如果这是错误的或有更好的方法,我可以接受另一个答案,但现在这是我的问题的解决方案。