Получить список неподготовленных файлов в git pre-commit hook


Я потратил много времени на stackru/google, пытаясь найти решение этой проблемы. Может быть, решение простое, и я что-то упустил.

Таким образом, у меня есть хук предварительной фиксации (сценарий оболочки), который запускает несколько тестов для зафиксированных файлов. Если подтвержденный файл не проходит тест, он удаляется со сцены. Я хочу распечатать все неустановленные файлы внутри скрипта. Вот что я пробовал так далеко из сценария.

  1. git diff - только для имени --diff-filter = M
  2. git ls-files -m
  3. git diff - только для имени

Все они выдают ту же ошибку, как показано ниже:

роковая: эта операция должна выполняться в рабочем дереве

PS Я запускаю это в папке.git (поскольку там находятся хуки) и, следовательно, ошибка.

Любые предложения будут действительно полезны.

2 ответа

Решение

Я спросил моего коллегу, и он придумал решение специально для сценария оболочки. Иногда нужно просто думать просто!

Просто измените каталог с помощью "cd" и запустите команду, как только вы окажетесь вне папки .git.

добавьте следующее вверху вашего скрипта, предполагая, что ваш хук .git/hooks/

      #! /bin/bash
here=`dirname "$0"`
cd "$here/../.."
Другие вопросы по тегам