默认情况下,我如何配置git commit
充当git commit -v
(显示提交的完整差异)?
使用别名并不十分令人满意,因为它不会影响可能间接提交的操作期间的提交消息编辑,例如git rebase
。
答案 0 :(得分:48)
如果您使用的是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”选项一样 是从命令行给出的。
答案 1 :(得分:30)
据我所知,你不能用别名覆盖已经存在的git命令(否则,将无法执行原始命令,并且会破坏一堆东西)。
所以我建议你做一些像git config --global "alias.ci" "commit -v"
这样的事情。这会在~/.gitconfig
文件中添加一行,并使git ci
git commit -v
成为git ci
。那么你应该养成输入git commit
而不是-v
的习惯(除非你决定不想要{{1}})。
答案 2 :(得分:9)
好吧,我使用别名:
alias gc='git commit -v'
我相信有很多很好的别名,我从PeepCode git截屏视频开始。
答案 3 :(得分:6)
我知道这是一个古老的问题,但我碰巧碰到了它并得到答案。我在.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
的文件。
答案 4 :(得分:4)
我刚刚给var x = 0;
发了一封电子邮件,得到了以下回复:
05.04.2016 16:47,Pranit Bauva: 2016年4月5日星期二晚上8:08,Jacek Wielemborek写道:
您好,
我要求这个,因为有很多兴趣 (包括我)在这个功能中并没有方便的解决方法:
干杯, d33tah
目前正在进行中。我就是那个正在努力的人。 其中一个补丁目前在pu分支上。我还在打磨 它包括更多的东西。您可以通过阅读来跟踪其状态 由git维护者发布的git.git消息。最新修订版 补丁是http://thread.gmane.org/gmane.comp.version-control.git/288820
谢谢, Pranit Bauva
答案 5 :(得分:1)
愚蠢的解决方法::!git log -1 -u
答案 6 :(得分:1)
以下.bashrc
/ .profile
似乎可以完成这项任务:
git() {
if [[ "$1" = "commit" ]]; then
shift
command git commit -v "$@"
else
command git "$@"
fi
}