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