`git commit -v`默认

如何configurationgit commit来充当git commit -v (默认显示完全差异)?

使用别名不太令人满意,因为它不会影响可能间接提交的操作(如git rebase提交消息编辑。

如果你使用的是git 2.9,可以通过configuration完成。

 git config --global commit.verbose true 

Git 2.9.0发行说明: https : //github.com/git/git/blob/v2.9.0/Documentation/RelNotes/2.9.0.txt

“git commit”学会了注意“commit.verbose”configurationvariables,并像从命令行给出“–verbose”选项那样工作。

据我所知,你不能用一个别名覆盖已经存在的git命令(否则,没有办法做原始命令,一堆东西会中断)。

所以我build议你做一些像git config --global "alias.ci" "commit -v" 。 这将在你的~/.gitconfig文件中添加一行,并使git ci执行git commit -v 。 你应该只是习惯于inputgit ci而不是git commit (除非你决定不需要-v )。

那么,我使用别名:

 alias gc='git commit -v' 

我相信有一堆这样的好别名,我得到了PeepCode git screencasts。

我知道这是一个古老的问题,但偶然碰到它,并有一个答案。 我把下面的函数放在.bash_profile中:

 #!/bin/bash git() { case "$1" in ci|commit) gitargs="" for i in $@; do if [ "$1" != "$i" ]; then gitargs="$gitargs $i" fi done command git commit -v $gitargs ;; *) command git "$@" ;; esac } 

这将git变成了一个bash函数,它将git commit转换成git commit -v ,而剩下的参数大部分都是单独的。 但是,它打破了空白的git commit参数,它不会让你提交一个名为cicommit的文件。

我刚刚发了一封电子邮件到git@vger.kernel.org ,得到了以下回复:

05.04.2016 16:47,Pranit Bauva:在2016年4月5日星期二下午8:08,Jacek Wielemborek写道:

你好,

我要求这个,因为这个function有很多兴趣(包括我),没有方便的步骤:

`git commit -v`默认

干杯,d33tah

目前正在进行中。 我正在为此工作。 其中一个补丁目前在pu分支上。 我仍然在抛光它,以包括更多的东西。 你可以通过git维护者读取git.git消息来追踪它的状态。 该修补程序的最新版本位于http://thread.gmane.org/gmane.comp.version-control.git/288820

谢谢,Pranit Bauva

愚蠢的解决方法: :!git log -1 -u

以下放在.bashrc / .profile似乎做的工作:

 git() { if [[ "$1" = "commit" ]]; then shift command git commit -v "$@" else command git "$@" fi }