TLDR: git rev-parse -q --verify MERGE_HEAD
ошибки, когда НЕ в состоянии слияния. Как я могу получить аналогичную команду, которая выдает ошибку, когда мы находимся в состоянии слияния?
Проблема: , когда я сливаю master в свою ветку, и она имеет конфликты, я должен вручную исправить их, а затем зафиксировать. Однако в некоторых случаях у меня слишком много изменений, исходящих от мастера, поэтому я бы предпочел просто пропустить хуки перед фиксацией.
Частичное решение: Я мог бы просто запустить git commit --no-verify
и объединить вещи, но это потому, что я знаю о флаге. Другие разработчики могут не знать об этом, и поэтому (1) они тратят больше времени, чем необходимо, ожидая запуска ловушек перед фиксацией, и (2) так как это может занять слишком много времени, они, как правило, реже возвращают мастер (предположение) .
Почти окончательное решение: Я нашел способ определить, нахожусь ли я в состоянии слияния, используя git rev-parse -q --verify MERGE_HEAD
. Он возвращает га sh в состоянии слияния и ошибки, когда НЕ в состоянии слияния. Но мне нужно как раз наоборот. Мне нужно, чтобы он выдавал ошибку, когда я нахожусь в состоянии слияния, чтобы я мог добавить его в качестве ловушки перед фиксацией ко всем моим ловушкам. Это приведет к сбою в первой строке, а затем не выполнит следующую команду.
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.js": [
"git rev-parse -q --verify MERGE_HEAD",
"eslint --max-warnings 0 --fix"
],
"*.scss": [
"git rev-parse -q --verify MERGE_HEAD",
"stylelint 'app/**/*.scss'"
],
"*.{js,json,yml,scss,md}": [
"git rev-parse -q --verify MERGE_HEAD",
"prettier --write"
],
"*": [
"bundle exec rubocop --auto-correct --force-exclusion"
]
},
Обратите внимание, что вышеупомянутое не работает. Чтобы это работало, все, что нам нужно, это обратить эффект с git rev-parse -q --verify MERGE_HEAD
, т. Е. Он должен выдавать ошибку, когда мы находимся в состоянии слияния. Как я могу сделать это с помощью простой команды?