`git commit -v` по умолчанию - PullRequest
60 голосов
/ 04 мая 2011

Как я могу настроить git commit, чтобы он действовал как git commit -v (показывая, что полный дифференциал фиксируется) по умолчанию?

Использование псевдонима не совсем удовлетворительно, так как оно не влияет на редактирование сообщений о коммите во время операций, которые могут косвенно фиксироваться, таких как git rebase.

Ответы [ 7 ]

52 голосов
/ 16 июня 2016

Если вы используете 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 было дано из командной строки.

30 голосов
/ 26 июня 2011

Насколько я могу судить, вы не можете переопределить уже существующую команду git псевдонимом (иначе не было бы способа выполнить исходную команду, и куча вещей сломалась бы).

Поэтому я рекомендую вам сделать что-то вроде git config --global "alias.ci" "commit -v". Это добавит строку в ваш файл ~/.gitconfig и сделает так, чтобы git ci сделал git commit -v. Затем вам нужно просто набрать git ci вместо git commit (если только вы не решите, что не хотите -v).

9 голосов
/ 04 мая 2011

Ну, я использую псевдонимы:

alias gc='git commit -v'

Есть куча хороших псевдонимов, таких как эта, которые я получил от скринкастов PeepCode git, я полагаю.

6 голосов
/ 11 апреля 2012

Я знаю, что это старый вопрос, но я случайно наткнулся на него и получил ответ. Я поставил следующую функцию в .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 голосов
/ 05 апреля 2016

Я только что отправил электронное письмо на git@vger.kernel.org и получил следующий ответ:

05.04.2016 16:47, Пранит Баува: Во вторник, 5 апреля 2016 г. в 20:08, Яцек Вилемборек написал:

Здравствуйте,

Я спрашиваю об этом, потому что есть довольно большой интерес (включая меня) в этой функции и нет удобного обхода:

`git commit -v` по умолчанию

Cheers, d33tah

В настоящее время это происходит. Я тот, кто работает над этим. Один из патчей в данный момент находится на ветке пу. Я еще полирую это включить еще кое-что. Вы можете отслеживать его статус, читая git.git сообщения от сопровождающего git. Последняя редакция патч на http://thread.gmane.org/gmane.comp.version-control.git/288820

Спасибо, Пранит Баува

1 голос
/ 29 января 2015

Следующая строка в .bashrc / .profile, кажется, делает эту работу:

git() {
    if [[ "$1" = "commit" ]]; then
        shift
        command git commit -v "$@"
    else
        command git "$@"
    fi
}
1 голос
/ 30 октября 2013

Глупый обходной путь: :!git log -1 -u

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...