我想在发布新版本之前检查是否有人修改了我的文件(同事 - >修补程序或黑客 - > 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
答案 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'
从列表中删除跳过的文件