I am running Git-1.8.0-preview20121022 on Windows 7 and the install was with "Git Bash Only" (least intrusive to Windows cmd).
When I open the Git Bash from the start menu shortcut, everything is fine with the history.
But when the Git Bash here
context menu (either the git-cheetah
shell extension one or the simpler registry one) is what launched a session, the commands from that session are not saved to the .bash_history
.
How could figure out why this is happening? Or better yet, does someone know how to fix this?
Your Mac could be infected with malware and/or hacked, and someone else is removing your . bash_history file.
As it was said here, to save git bash history on Windows you must not close the terminal with X button. Use exit command instead. History of commands will be saved then regardless of configuration mentioned in the accepted answer.
The command is simply called history, but can also be accessed by looking at your . bash_history in your home folder. By default, the history command will show you the last five hundred commands you have entered.
By default, history stores commands in RAM until you log out of the terminal. Once you log out, commands are written to disk in the ~/. bash_history file. The history buffer is limited to 1,000 command entries and the history file is limited to 2,000 entries.
You should be able to fix this by adding this line to your ~/.bash_profile
PROMPT_COMMAND='history -a'
As mentioned here: https://stackoverflow.com/a/60718848/6680510
Create the following files
~/.bash_profile ~/.bashrc
And put the following line in both of them
PROMPT_COMMAND='history -a'
To do this from the console (git bash) itself use the following commands
echo "PROMPT_COMMAND='history -a'" >> ~/.bash_profile echo "PROMPT_COMMAND='history -a'" >> ~/.bashrc
What
history -a
meansFrom
history --help
command-a append history lines from this session to the history file
What is
PROMPT_COMMAND
?Bash provides an environment variable called PROMPT_COMMAND. The contents of this variable are executed as a regular Bash command just before Bash displays a prompt.
Difference between
.bash_profile
AND.bashrc
.bash_profile
is executed for login shells, while.bashrc
is executed for interactive non-login shells.When you login (type username and password) via console, either sitting at the machine, or remotely via ssh: .bash_profile is executed to configure your shell before the initial command prompt.
But, if you’ve already logged into your machine and open a new terminal window (xterm) then .bashrc is executed before the window command prompt. .bashrc is also run when you start a new bash instance by typing /bin/bash in a terminal.
On OS X, Terminal by default runs a login shell every time, so this is a little different to most other systems, but you can configure that in the preferences.
References
https://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x264.html https://apple.stackexchange.com/questions/51036/what-is-the-difference-between-bash-profile-and-bashrc
Putting
PROMPT_COMMAND='history -a ~/.bash_history'
into the .bash_profile did it for me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With