Я ищу способ «сбросить» репозиторий в чистое состояние. Задержать! Прежде чем вы скажете

  • просто используйте git-clean
  • ... или git-reset

Это не то, что я ищу! Я не хочу сбрасывать файлы, но состояние. Это означает отмену всех незавершенных операций, таких как перебазирование, слияние, разделение пополам и удаление любых вспомогательных файлов, таких как MERGE_HEAD или MERGE_MSG, внутри самого каталога .git.

Конечно, я мог бы сделать это вручную с помощью ряда команд, но я надеялся на что-то более элегантное, что не требует от меня знать, в каком состоянии сейчас находится репо.

git
5
user187676 2 Апр 2020 в 11:22
Собственно вопрос. Я ищу метод, который не требовал бы от меня знать, в какой операции/состоянии он находится в данный момент. Это означает, что независимо от того, является ли это интерактивным перебазированием, слиянием, разделением пополам или чем-то еще. Он должен работать в любом случае.
 – 
user187676
2 Апр 2020 в 11:26
1
Я понял. Спасибо за разъяснения.
 – 
Tim Biegeleisen
2 Апр 2020 в 11:27
2
git reset прервет текущее слияние, но не текущую операцию секвенсора (выбор вишни с несколькими фиксациями, возврат или перебазирование). Лучше всего сначала запросить текущие операции, а затем использовать более явный --abort для тех, которые вы хотите завершить.
 – 
torek
2 Апр 2020 в 11:27
Это отличная идея. git abort --all будет очень кстати!
 – 
matt
19 Июн 2020 в 01:30
1
Я написал свой собственный, здесь - github.com/lassevk/GitToolbox/blob/ master/git-abort — насколько я знаю, в git ничего не встроено.
 – 
Lasse V. Karlsen
19 Июн 2020 в 14:50

1 ответ

Вы можете просмотреть сценарии, представленные в git/contrib: git-completion.bash содержит функцию __git_ps1, которая будет сканировать различные файлы в папке .git для создания сообщения с указанием REBASE ..., MERGE ... и т. д. .

Вы можете использовать это для запуска правильной команды --abort.

Это самая близкая к команде git, которую я знаю, которая указывает, какое действие происходит в данный момент.

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

0
LeGEC 21 Июн 2020 в 01:28