2012-05-07 13 views
23

Ich verwende Git für Windows (Version 1.7.8-preview20111206) und obwohl ich eine .bash_history-Datei in meinem HOME-Ordner habe, wird sie nie automatisch aktualisiert . Wenn ich Git Bash starte, kann ich in den History-Befehlen sehen, dass ich die .bash_history-Datei manuell hinzugefügt habe, aber sie wird nicht automatisch aktualisiert..bash_history wird in Git für Windows nicht aktualisiert (git bash)

Ich habe den Befehl shopt -s histappend verwendet, um sicherzustellen, dass der Verlauf jedes Mal gespeichert wird, wenn ich die Shell schließe, aber es funktioniert nicht.

Wenn ich manuell den history -w Befehl verwende, dann wird meine Datei aktualisiert, aber ich möchte verstehen, warum der shopt Befehl nicht funktioniert, wie ich es verstehe.

Jeder kann mir sagen, warum passiert dieses Verhalten?

Vielen Dank im Voraus

+0

Was sind die Werte von $ HISTSIZE, $ HISTFILESIZE und $ HISTFILE? –

+0

$ HISTSIZE ist 10000, $ HISTFILESIZE ist 10000 und $ HISTFILE ist /h/.bash_history. – franmon

Antwort

30

Ich habe dies in meiner ~/.bash_profile

PROMPT_COMMAND='history -a' 
+2

Dies funktionierte für mich auf Win 7 64-Bit. Reifte sich für eine Weile das Haar aus, als würde es nicht funktionieren - dann wurde mir klar, dass ich mit Windows Line-Endings erstellt hatte, die kaputt gingen. Wenn Sie Probleme haben, überprüfen Sie, ob Sie die Unix-Zeilenenden mit einem Editor gespeichert haben, der dies unterstützt - nicht z. Notizblock! – psdie

+0

Sie können 'vim' auch in der Git-Bash-Befehlszeile verwenden – Highmastdon

+0

Sie können dos2unix auch zum Konvertieren von Zeilenenden verwenden. – Chance

4

Wenn Sie git bash verwenden für Windows 8, setzen Sie diese einfach in Ihre ~/.bash_logout Datei:

history > .bash_history 

Offensichtlich benötigen Sie eine ~/.bash_history Datei.

Grüße.

+0

Windows 8.1 und GNU bash, Version 3.1.0 (1) -release (i686-pc-msys) - funktioniert! – abrasadera

+2

Aus irgendeinem Grund funktioniert das nicht für mich. Win7 x64. –

+2

@CamiloMartin - siehe oben meinen Kommentar über die Verwendung von Unix-Zeilenenden (ich habe .bash_profile verwendet). – psdie

18

Wie gesagt here, um git bash Geschichte unter Windows zu speichern, müssen Sie das Terminal nicht mit X Schaltfläche schließen. Verwenden Sie stattdessen den Befehl exit. Die Geschichte der Befehle wird dann unabhängig von der in der angenommenen Antwort erwähnten Konfiguration gespeichert.

+1

das ist gut zu wissen, aber ich werde es schwer haben, mich daran zu erinnern. – Chance

+0

@Chance zum Glück müssen Sie sich nicht mehr daran erinnern, denn in den neueren Versionen von Git für Windows ist das nicht wahr. Getestet mit Version 2.9.3 auf win7 und win10. – Superole

+1

@Superole nicht wahr auf meiner Maschine. Ich habe git 2.12.2 für Windows 8.1 (neuestes für 04/17), und die einzige Möglichkeit, Geschichte zu speichern, die mir bekannt ist, ist "exit" eingeben, bevor Sie x-Taste klicken – Sebastian