2017-05-18 117 views
0

我使用git将更改部署到活动服务器。Git部署挂钩不删除已删除的文件

设置为纯仓库的html文件夹之外的与下面的挂钩:

#!/bin/sh 
GIT_WORK_TREE=/var/www/html git checkout -f 

它更新修改过的文件并创建新的文件,但它不会删除已删除的文件。

我该如何解决这个问题?

回答

1

末补充一点:

GIT_WORK_TREE=/var/www/html git clean -df 

git clean命令用来删除工作目录未跟踪文件;它需要-f才能做任何事情,并且-d将使它删除未跟踪的目录,而不是将它们留空。

+0

我会补充说这不是必须的*如果*裸仓库中的索引对应于分配的(通过' - git-work-tree'或'GIT_WORK_TREE')工作树。如果裸仓库中的索引与其他*工作树相对应,则在一些(罕见)情况下,您将有可能未更新文件。 – torek

+0

@torek,你能解释一下吗?我是git的新手。 如何检查裸仓库中的索引是否与分配的工作树相对应? – MployBy

+0

@Amber,它会删除工作目录中不存在于我推送来的本地存储库中的所有文件。或者只有在本地存储库中删除并在提交时提及的文件被删除?我期待着取得第二名。导致某些文件夹在设计中不存在于远程回购中。 – MployBy