覆盖本地文件GIT PHP

时间:2014-04-05 18:24:39

标签: php git awk

在我们公司,我们更喜欢在代码最终生效的实际服务器上进行开发,因此我们将FTP文件保存起来,在服务器上测试它们,然后一旦完成,我们提交并推送它们,它们部署repo并更改到发生FTP的同一服务器。

以前我们一直使用Beanstalk和FTP部署方案,因此,由于服务器上的本地更改只会被FTP覆盖,因此不会发生任何冲突。

我们最近搬到了不提供FTP解决方案的GitLab,只有通过GIT本身拉回购物的webhook。

因此,我们收到了未跟踪文件和本地文件的错误,因为我们正在FTP那些文件。

我做了很多研究,看起来答案是这样的:

https://stackoverflow.com/a/13242127/1136979

但是,我们需要将其转换为PHP以在Web挂钩中使用。

执行提取很简单,但是可以转换此部分:

for file in `git diff HEAD..origin/master --name-status | awk '/^A/ {print $2}'`
do
    rm -f -- "$file"
done

# Checkout all files which were locally modified
for file in `git diff --name-status | awk '/^[CDMRTUX]/ {print $2}'`
do
    git checkout -- "$file"
done

到PHP?

任何人都可以分享如何将这个awk命令转换为php中的某些内容?

我假设我可以像这样访问文件:

$files = exec('git diff HEAD origin/master --name-status');

然后简单地遍历它们,但我不确定awk的作品是什么。

所有人都非常感谢。

0 个答案:

没有答案