2012-05-07 4 views
23

Я использую Git для Windows (версия 1.7.8-preview20111206), и хотя у меня есть файл .bash_history в моей папке HOME, он никогда не обновляется автоматически , Когда я запускаю Git Bash, я могу видеть в командах истории, которые я вручную добавил в файл .bash_history, но он не обновляется автоматически..bash_history не обновляется в Git для Windows (git bash)

Я использовал команду shopt -s histappend, чтобы история сохранялась каждый раз, когда я закрываю оболочку, но она не работает.

Если я вручную использую команду history -w, тогда мой файл обновляется, но я хотел бы понять, почему команда shopt не работает, как я понимаю.

Любой может сказать мне, почему это происходит?

Заранее спасибо

+0

Каковы значения '$ HISTSIZE',' $ HISTFILESIZE' и '$ HISTFILE'? –

+0

$ HISTSIZE - 10000, $ HISTFILESIZE - 10000, а $ HISTFILE - /h/.bash_history. – franmon

ответ

30

Я положил это в мой ~/.bash_profile

PROMPT_COMMAND='history -a' 
+2

Это работало для меня на Win 7 64-bit. Разрывал волосы на некоторое время, так как это не сработало - тогда я понял, что создал с линейными окончаниями Windows, что ломается. Если у вас есть проблемы, дважды проверьте, что вы сохранили с окончанием строки Unix, используя редактор, который поддерживает это, а не, например. Блокнот! – psdie

+0

Вы всегда можете использовать 'vim' даже в командной строке Git-Bash. – Highmastdon

+0

Вы можете использовать dos2unix для преобразования окончаний строк. – Chance

4

Если вы используете Git Баш для Windows 8, просто положить это в ~/.bash_logout файла:

history > .bash_history 

Очевидно, вам нужен файл ~/.bash_history.

С уважением.

+0

Windows 8.1 и GNU bash, версия 3.1.0 (1) -release (i686-pc-msys) - работает! – abrasadera

+2

По какой-то причине это не работает для меня. Win7 x64. –

+2

@CamiloMartin - см. Мой комментарий выше о том, что вы использовали окончание строк Unix (я использовал .bash_profile). – psdie

18

Как было сказано, here, чтобы сохранить историю git bash на Windows, вы не должны закрывать терминал с помощью кнопки X. Вместо этого используйте команду exit. История команд будет сохранена, независимо от конфигурации, указанной в принятом ответе.

+1

Это хорошо знать, но мне будет трудно запомнить это. – Chance

+0

@Chance, к счастью, вам больше не нужно это помнить, потому что в новых версиях Git для окон это не так. Протестировано с версией 2.9.3 на win7 и win10. – Superole

+1

@ Суперило не соответствует действительности на моей машине. У меня есть git 2.12.2 для Windows 8.1 (самый новый для 04/17), и единственный способ сохранить историю, о которой я знаю, - это ввести «exit» перед нажатием кнопки x – Sebastian