Применить предварительную фиксацию только в локальном хранилище? - PullRequest
0 голосов
/ 09 мая 2019

Используя Git, у меня есть ловушка предварительной фиксации, которую я заполнил mvn clean install.

Я хочу проверить, выполняется ли эта команда без ошибок, прежде чем отправлять в удаленный репозиторий.

Проблема в том, что эта команда применяется к моему текущему каталогу, а не к локальному репозиторию git (который состоит только из добавленных файлов). Итак, иногда я получаю сообщение об ошибке, потому что на некоторых файлах я не добавил, хотя без этих файлов нет ошибки.

Итак, мой вопрос: как я могу применить предварительную фиксацию mvn clean install, которая применяется только к добавленным файлам в локальный репо?

1 Ответ

0 голосов
/ 09 мая 2019

Пример сценария оболочки хука перед фиксацией: https://gist.github.com/dahjelle/8ddedf0aebd488208a9a7c829f19b9e8

Строка уведомления 3:

$(git diff --cached --name-only | grep -E '\.(js|jsx)$')

При этом файлы git commit ..., переданные по трубопроводу, фильтруются только в формате .js илифайлы .jsx.Вы можете изменить этот сценарий и удалить трубопровод.

В строке 5: измените строку node_modules/... с помощью mvn clean install.

Измените сценарий по мере необходимости.

РЕДАКТИРОВАТЬ:

Вот пример, который может более точно соответствовать вашему варианту использования: https://eing.github.io/technology/2016/01/28/Git-Pre-Commit-Hooks-Part1/

{ echo "
git stash -q --keep-index
# Using "mvn test" to run all unit tests and run plugins to assert
#   * code coverage threshold >= 85% (using surefire, enforcer plugins)
#   * FindBugs at low threshold errors (using findbugs-maven-plugin)
#   * Checkstyle has 0 errors (using maven-checkstyle-plugin)
mvn clean install test
RESULTS=\$?
# Perform checks
git stash pop -q
if [ \$RESULTS -ne 0 ]; then
  echo Error: Commit criteria not met with one or more of the following issues,
  echo 1. Failure\(s\) in unit tests
  echo 2. Failure to meet 85% code coverage
  echo 3. Failure to meet low FindBugs threshold
  echo 4. Failure to meet 0 Checkstyle errors
  exit 1
fi
# You shall commit
exit 0"
} > pre-commit.sh
pushd .git/hooks
ln -s ../../pre-commit.sh pre-commit
chmod u+x pre-commit
popd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...