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

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

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

Ответ 1

Если вы используете git 2.9, это можно сделать с помощью config.

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

Ответ 2

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

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

Ответ 3

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

alias gc='git commit -v'

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

Ответ 4

Я знаю, что это старый вопрос, но мне довелось встретить его и ответить. Я поместил следующую функцию в .bash_profile:

#!/bin/bash                                                                            

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

Это превращает git в функцию bash, которая преобразует git commit в git commit -v и оставляет остальные аргументы в основном в одиночку. Однако он разбивает аргументы git commit, которые имеют пробелы, и он не позволит вам зафиксировать файл с именем ci или commit.

Ответ 5

Я только что отправил электронное письмо на адрес [email protected] и получил следующий ответ:

05.04.2016 16:47, Пранит Баува: В Вторник, 5 апреля 2016 года в 8:08 вечера, Яцек Wielemborek писал:

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

     

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

     

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

     

Cheers,   d33tah

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

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

Ответ 6

Глубокое обходное решение: :!git log -1 -u

Ответ 7

Кажется, что следующее задание .bashrc/.profile выполняет следующее задание:

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