我的当前工作流设置在我的网络服务器上有一个git repo,后面有一个钩子,检查我的分支master
和staging
到他们各自的文件夹,master
是我的现场和staging
我的演出。
在重命名文件之前一切顺利,如果我将文件夹js
更改为javascript
,例如,当钩子检出我的分支时,它将创建文件夹{{1}但保留文件夹javascript
及其先前提交的内容。我确定git已检测到文件已被重命名,因为当我在本地检出文件时文件已经消失。
这是我的收件后挂钩:
js
答案 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跟踪的所有文件,并以递归方式执行。如果我重命名文件或文件夹,它将在下次推送到服务器时被“清除”。如果这是错误的或有更好的方法,我可以接受另一个答案,但现在这是我的问题的解决方案。