默认情况下,如何配置git commit为充当git commit -v(显示已提交的完整差异)?
使用别名不是很令人满意,因为它不会影响可能间接提交的操作期间的提交消息编辑git rebase。
默认情况下,如何配置git commit为充当git commit -v(显示已提交的完整差异)?
使用别名不是很令人满意,因为它不会影响可能间接提交的操作期间的提交消息编辑git rebase。
Answers:
如果您使用的是git 2.9,则可以通过配置来完成。
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”配置变量,并像从命令行中给出了“ --verbose”选项一样工作。
据我所知,您不能使用别名覆盖已经存在的git命令(否则,将无法执行原始命令,并且一堆东西会中断)。
因此,我建议您做类似的事情git config --global "alias.ci" "commit -v"。这将在您的~/.gitconfig文件中添加一行,并使其git ci生效git commit -v。然后,您应该养成键入git ci而不是输入的习惯git commit(除非您决定不使用-v)。
git-config手册页中都有大量记录,并且我在那里看不到任何可能让您执行此操作的东西(如果愿意,可以再次检查一下自己)。因此,我认为没有办法直接git commit做到git commit -v。
好吧,我使用别名:
alias gc='git commit -v'
我相信,有一堆不错的别名,就像我从PeepCode git截屏视频中得到的一样。
git gc是一个Git命令,gc本身不执行任何操作。
我知道这是一个古老的问题,但我碰巧遇到了这个问题并得到了答案。我将以下函数放在.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带有空格的参数,并且不允许您提交名为ci或的文件commit。
git-commit有自己的单独命令,那将是很好的选择,这样就可以覆盖它。
我刚刚向发送了一封电子邮件,git@vger.kernel.org并收到以下回复:
2016年5月4日16:47,普拉尼特·鲍瓦(Pranit Bauva):在2016年4月5日,星期二,晚上8:08,贾瑟克·维尔伯瑞克写道:
你好,
我要这个是因为这个功能引起了很多人的兴趣(包括我在内),并且没有方便的解决方法:
干杯,d33tah
目前正在进行中。我就是正在努力的人。其中一个修补程序当前在pu分支上。我仍在完善它,以包含更多内容。您可以通过git维护者阅读git.git消息来跟踪其状态。该修补程序的最新版本位于http://thread.gmane.org/gmane.comp.version-control.git/288820
谢谢,Pranit Bauva