Вместо того, чтобы проверять каждые несколько минут, запишите цикл, который повторно запускает программу, когда она завершается неправильно. Но не прокручивайте свое собственное, существует много существующих программ, чтобы сделать это. Посмотрите Гарантируют, что процесс всегда работает
Это зависит от редактора, который вы используете.
Если vim можно использовать ESC и :wq или ESC и Shift+zz. Обе команды - сохранение файла и выход.
Также можно проверить ~/.gitconfig
для редактора, в моём случае (cat ~/. gitconfig
):
[user]
name = somename
email = somemail@gmail.com
[core]
editor = vim
excludesfile = /home/mypath/.gitignore_global
[color]
ui = auto
# other settings here
Я знаю, что это может быть поздно, однако я заметил, что это происходит только в том случае, если я делаю коммит в ветке, которая немного более обновлена, чем ветка, которую я объединяю.
Получается, что если я поменяю ветку (т.е. добавлю еще файлов в ветку ),и попробуйте объединить с ней другую ветку, Git попросит меня написать MERGE_MSG
для этой ветки.
На этом изображении видно, что я добавил файл LICENSE в master
и файл .gitignore
в ветку npm-init
.
Поскольку master
содержит новый файл LICENSE, а npm-init
не знает об этом, Git попросил меня написать сообщение о том, почему я должен его объединить.
Точно так же я объединил add-eslint
сadd-dev
до того, как я объединил изменения в install-deps
.
Я знаю, что это может быть трудно понять (даже мне поначалу ), но я надеюсь, что изображение прояснит ситуацию:)
Ответ, отмеченный здесь как правильный, не сработал для меня, так как после выхода из редактора с помощью wq
или :q!
файл сохраняется и происходит слияние.
Альтернативой, которую я нашел на данный момент, является приостановка процесса vim с помощью Ctrl + Z , а затем прерывание слияния с помощью git merge --abort
, а затем уничтожение фоновый процесс (вы увидите PID, когда вы выполните Ctrl + Z)