如何在capistrano版本中查看修改过的文件?

时间:2016-12-15 11:41:12

标签: git capistrano

我想在发布新版本之前检查是否有人修改了我的文件(同事 - >修补程序或黑客 - > hack)。 是否可以在capistrano版本中通过<?php $contentdata = ''; $contentdata .='<table>'; $contentdata .='<tr>'; $contentdata .='<td><b>Decembire</b></td>'; $contentdata .='</tr>'; $contentdata .='<tr>'; $contentdata .='<td><span>ID</span></td>'; $contentdata .='<td><span>Nume</span></td>'; $contentdata .='<td><span>Prenume</span></td>'; $contentdata .='<td><span>Email</span></td>'; $contentdata .='<td><span>Roll</span></td>'; $contentdata .='<td><span>Data Programme</span></td>'; $contentdata .='<td><span>Mesaj</span></td>'; $contentdata .='<td><span>Status</span></td>'; $contentdata .='</tr>'; foreach($test['Dec'] as $key=>$value){ $contentdata .= '<tr><td>'.$key.'</td>'; foreach($value as $key1=>$valuedata){ $contentdata .='<td><span>'.$valuedata['num'].'</span></td>'; $contentdata .='<td><span>'.$valuedata['prenum'].'</span></td>'; $contentdata .='<td><span>'.$valuedata['email'].'</span></td>'; $contentdata .='<td><span>'.$valuedata['rol'].'</span></td>'; $contentdata .='<td><span>'.$valuedata['data'].'</span></td>'; $contentdata .='<td><span>'.$valuedata['mesaj'].'</span></td>'; $contentdata .='<td><span>'.$valuedata['statue'].'</span></td>'; } $contentdata .='</tr>'; } echo $contentdata; ?> 查看更改的文件?

git status

1 个答案:

答案 0 :(得分:2)

有一种方法可以做到,虽然不是很明显。

首先,使用tail revisions.log查找用于发布的Git提交SHA。

$ tail -n1 revisions.log
Branch master (at 66ba18ca4f689a7e9fdc9a45ba3c952785620157) deployed as release 20161214132953 by mbrictson

接下来,转到repo目录并使用git archive命令创建该提交中存在的存储库的原始快照。

$ mkdir -p /tmp/pristine-release
$ git archive 66ba18ca4 | tar -x -f - -C /tmp/pristine-release

现在您可以使用diff查看差异:

$ diff -r /tmp/pristine-release /path/to/releases/20161214132953

如果您想通过.gitignore忽略文件,可以使用以下命令:

rsync \
  -vanc\
  --no-links \
  --no-group \
  --no-owner \
  --no-perms \
  --no-times \
  --delete \
  --filter="dir-merge,- .gitignore" \
  /path/to/current/ \
  /tmp/pristine-release \
  | head -n -3 \
  | tail -n +2 \
  | grep -v 'skipping non-regular file'

--filter="dir-merge,- .gitignore"阅读并使用gitignore
| head -n -3删除了rsync页脚 | tail -n +2删除rsync标头
| grep -v 'skipping non-regular file'从列表中删除跳过的文件