Получить список неподготовленных файлов в git pre-commit hook
Я потратил много времени на stackru/google, пытаясь найти решение этой проблемы. Может быть, решение простое, и я что-то упустил.
Таким образом, у меня есть хук предварительной фиксации (сценарий оболочки), который запускает несколько тестов для зафиксированных файлов. Если подтвержденный файл не проходит тест, он удаляется со сцены. Я хочу распечатать все неустановленные файлы внутри скрипта. Вот что я пробовал так далеко из сценария.
- git diff - только для имени --diff-filter = M
- git ls-files -m
- git diff - только для имени
Все они выдают ту же ошибку, как показано ниже:
роковая: эта операция должна выполняться в рабочем дереве
PS Я запускаю это в папке.git (поскольку там находятся хуки) и, следовательно, ошибка.
Любые предложения будут действительно полезны.
2 ответа
Я спросил моего коллегу, и он придумал решение специально для сценария оболочки. Иногда нужно просто думать просто!
Просто измените каталог с помощью "cd" и запустите команду, как только вы окажетесь вне папки .git.
добавьте следующее вверху вашего скрипта, предполагая, что ваш хук
.git/hooks/
#! /bin/bash
here=`dirname "$0"`
cd "$here/../.."