To create a git hist alias in your Bash profile that:
- prints the history of the whole directory if no arguments are specified, and
- if a file or directory is specified, it shows the history of that,
you can add the following lines to your ~/.bash_profile
or ~/.bashrc
file:
# define a Bash function called git hist
git hist() {
# checks if there are no command-line arguments
if [ $# -eq 0 ]; then
git log --oneline --decorate --graph --all
# if there are no arguments, it shows the history of the whole directory
else
git log --oneline --decorate --graph "$@"
# if there are arguments, it shows the history of the specified file or directory.
fi
}
After adding these lines to your Bash profile, save the file, and either restart your terminal or run source ~/.bash_profile
(or source ~/.bashrc
) to apply the changes.
Now, you can use git hist
to view the history of the whole directory.
And git hist <file>
or git hist <directory>
to view the history of a specific file or directory.
To include the author's name in the git log output, you can use the --pretty
option to specify a custom format.
git log --oneline --decorate --graph --all --pretty=format:"%h %d %s (%an)"
This will display the commit hash, branch/tag decorations, commit message, author's name for each commit in the Git log.
%h
: Short commit hash.%d
: Decorations (branch and tag names).%s
: Commit message.(%an)
: Author's name in parentheses.
To find author date and time, you can pass in additional formatting parameters:
git log --oneline --decorate --graph --all --pretty=format:"%h %d %s (%an) %ad"
The param %ad
is used to include the author date in the format
and the date and time will be in the format defined by your Git configuration.