Как определить, конфликтует ли мое git-репо?

Есть ли команды, которые я могу вызывать программно, чтобы определить, находится ли мое git-репо в состоянии каждого из

  1. конфликт слияния
  2. конфликт перебазирования
  3. конфликт из-за тайника

В частности, я хочу знать, могу ли я выпускать программно git merge --abort (в случае 1) и git rebase --abort (в случае 2), чтобы вернуться в известное хорошее состояние.

1 ответ

  1. Во время слияния файлы MERGE_HEAD, MERGE_MODE а также MERGE_MSG существовать в вашем .git папка.
  2. Во время перебазирования rebase-apply папка существует внутри вашего .git папка. Смотрите этот вопрос и его ответы.
  3. stash pop выполняет слияние, но не совсем. Содержание .git папка вроде бы как обычно. Я не совсем уверен, но так как слияние из тайника не может быть прервано (что-то вроде git stash pop --abort не может быть сделано, и если вы хотите прервать, вы должны идти с добрым старым git reset --hard HEADЯ не думаю, что хранилище находится в реальном "конфликтном состоянии". Все, что у вас есть, это маркеры конфликта в конфликтующих файлах.
Другие вопросы по тегам