This question already has answers here:
Closed 4 months ago.
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?
You should be able to fix this by adding this line to your ~/.bash_profile
PROMPT_COMMAND='history -a'
Putting
PROMPT_COMMAND='history -a ~/.bash_history'
into the .bash_profile did it for me.
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
means
From 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