`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
参数,它不会让你提交一个名为ci
或commit
的文件。
我刚刚发了一封电子邮件到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 }