§ Door File!

Верни как всё было, верни как тогда оно было. Этот микроскрипт для возвращения изменений гита в исходное состояние. Не всегда работает, но иногда (часто) помогает.
1
2$zone = '';
3$revert = [];
4
5foreach (array_map('trim', explode("\n", `git status -s`)) as $row) {
6
7    // Модифицированные файлы
8    if (preg_match('~^\s*M\s+(.+)$~', $row, $c)) {
9
10        $file = $c[1];
11        echo "MOD $file\n";
12        $revert[] = $file;
13    }
14    // Файлы, которых нет в GIT
15    else if (preg_match('~^\s*\?+\s+(.+)$~', $row, $c)) {
16
17        $file = $c[1];
18        if (file_exists($file)) {
19            if (is_dir($file)) {
20                echo "DIR $file\n";
21                `rm -r $file`;
22            } else {
23                echo "DEL $file\n";
24                unlink($file);
25            }
26        } else {
27            echo "404 $file\n";
28        }
29    }
30}
31
32if ($revert) {
33    $bash = "git checkout " . join(" ", $revert);
34    echo `$bash 2>&1`;
35}
36
37echo `git pull 2>&1`;