Я ищу способ «сбросить» репозиторий в чистое состояние. Задержать! Прежде чем вы скажете
- просто используйте
git-clean
- ... или
git-reset
Это не то, что я ищу! Я не хочу сбрасывать файлы, но состояние. Это означает отмену всех незавершенных операций, таких как перебазирование, слияние, разделение пополам и удаление любых вспомогательных файлов, таких как MERGE_HEAD
или MERGE_MSG
, внутри самого каталога .git
.
Конечно, я мог бы сделать это вручную с помощью ряда команд, но я надеялся на что-то более элегантное, что не требует от меня знать, в каком состоянии сейчас находится репо.
1 ответ
Вы можете просмотреть сценарии, представленные в git/contrib: git-completion.bash
содержит функцию __git_ps1
, которая будет сканировать различные файлы в папке .git
для создания сообщения с указанием REBASE ...
, MERGE ...
и т. д. .
Вы можете использовать это для запуска правильной команды --abort
.
Это самая близкая к команде git, которую я знаю, которая указывает, какое действие происходит в данный момент.
Вы также можете просмотреть код этой функции и просмотреть список проверок, которые она выполняет, чтобы определить, находится ли она в состоянии слияния, перебазирования или выбора вишни.
Похожие вопросы
Новые вопросы
git
Git — это распределенная система контроля версий с открытым исходным кодом (DVCS). Используйте этот тег для вопросов об использовании Git и рабочих процессах. Не используйте этот тег для общих вопросов по программированию, связанных с репозиторием Git. Не используйте этот тег для вопросов GitHub/GitHub Actions, не связанных с использованием git; вместо этого используйте [github] или [github-actions]. Не используйте тег [github] для проблем, связанных с Git, только потому, что репозиторий размещен на GitHub.
git reset
прервет текущее слияние, но не текущую операцию секвенсора (выбор вишни с несколькими фиксациями, возврат или перебазирование). Лучше всего сначала запросить текущие операции, а затем использовать более явный--abort
для тех, которые вы хотите завершить.git abort --all
будет очень кстати!