相关疑难解决方法(0)

在post-receive hook中重用GIT_WORK_TREE到几个文件

我用这个'教程'来建立一个DSP环境:http://toroid.org/ams/git-website-howto(是的,我没有T).

我的工作流程非常简单:

  1. 在当地发展(D)
  2. 承诺一些事情
  3. 承诺更多的事情
  4. 推送到舞台(和Github)(S)
  5. 在Staging上测试新代码
  6. 推动生产(P)

我的代码包含由我的代码缩小的CSS文件,然后保存到1个文件中:all.css.在本地,我已关闭该选项,因此all.css每次更改CSS时我都不必手动删除.在Staging和Production上,他们应该尽快缓存(因此all.css从单独的CSS文件创建).

问题是每次我推,我必须删除all.css(和all.js- 相同的故事)看到更改(并正确测试).

从教程中我做了一个post-receive钩子,将更改检出到某个文件夹(Apache读取代码).

我目前的post-receive钩子:

#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f
Run Code Online (Sandbox Code Playgroud)

我想重用$GIT_WORK_TREE去除$GIT_WORK_TREE(正在www/all.csswww/all.js)中的两个文件,但我不能......下一行没有var $ GIT_WORK_TREE.

所以我把它改成了这个,但我不喜欢这样,特别是如果我想在将来做更多的事情:

#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f
rm /var/www/www.example.org/www/all.css
rm /var/www/www.example.org/www/all.js
Run Code Online (Sandbox Code Playgroud)

$GIT_WORK_TREE 不会像这样重复使用.

我尝试过的东西不起作用:

GIT_WORK_TREE=/var/www/www.example.org git checkout -f
rm $GIT_WORK_TREE/www/all.css
rm $GIT_WORK_TREE/www/all.js
Run Code Online (Sandbox Code Playgroud)

rm:文件不存在等(/www/all.css)($GIT_WORK_TREE为空)

GIT_WORK_TREE=/var/www/www.example.org
git checkout …
Run Code Online (Sandbox Code Playgroud)

git bash git-checkout

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

bash ×1

git ×1

git-checkout ×1