Як зробити git diff - змінити простір - змінити за замовчуванням


110

Можливо, я міг би встановити псевдонім, але, схоже, я повинен мати можливість встановити це як параметр у конфігураційному файлі, тільки я все одно не бачу цього робити.

Я хочу лише, --ignore-space-changeколи я роблю різницю, а не коли я роблю заявку або щось інше. Я намагаюся зробити розбірник легшим для розуміння, не захаращуючи його сторонніми лініями +/-, які не мають на них реальних змін.


2
дбаєте змінити правильну відповідь? :)
igorsantos07

1
тепер є ярлик, git diff -wякий є ярликом для --ignore-all-space: Ігноруйте пробіл при порівнянні ліній. Це ігнорує відмінності, навіть якщо в одному рядку є пробіл, де в другому рядку немає жодного.
Жоао Піментел Феррейра

Відповіді:


22

Згідно з посібником Git Config, такого варіанту немає. Ваш єдиний варіант - зробити псевдонім.

http://git-scm.com/docs/git-config


Я думав, що і від того, щоб прочитати цю сторінку. Я сподівався, що хтось знає спосіб, який просто не був задокументований .... ну добре.
boatcoder

@Dogbert - У мене те саме питання, лише коли я виконую git add -p <file_name>, якісь пропозиції?
Гай Аврахам

@ JoãoPimentelFerreira Це не робить його за замовчуванням.
DylanYoung


99

Ви можете використовувати псевдонім git або bash, якщо ви використовуєте ОС, доступну для оболонки.

  1. git alias : запустіть цю команду, щоб додати псевдонім:

    git config --global alias.dfw 'diff --ignore-space-change'

    --ignore-space-change can be abbreviated to -w
    застосувати псевдонім за допомогою: git dfw

  2. bash alias : запустіть цю команду, щоб додати псевдонім bash:

    echo "alias gitdfw='git diff --ignore-space-change'">>~/.profile

    Відкрийте новий термінал, і ви можете безпосередньо запустити, gitdfwщоб досягти того ж.


8
Це має бути прийнятою відповіддю, оскільки це насправді корисно з прикладами, а не "перейти до цієї URL-адреси".
DrStrangepork

7
Згідно з поточною документацією на git , -bце те саме, що --ignore-space-change. Він узгоджується з командою Linux diff, де -wозначає --ignore-all-space. Це важлива відмінність, оскільки, наприклад, текст a b cвважається таким же, як abcі у -wваріанті; в коді це навряд чи буде те, що ви хочете, тому -bкращий варіант.
Річард Вісман


10

РЕДАКТИРУЙТЕ: Я Я БУДУТЬ, А НЕ ЧИТАТИ ВАШІ ЗАПИТИ

Спосіб досягти чогось подібного man git-config:

 apply.whitespace
       Tells git apply how to handle whitespaces, in the same way
       as the --whitespace option. See git-apply(1).

Тож відкрийте свій ~/.gitconfigабо ./.git/config/і додайте

[apply]
   whitespace = nowarn

Це також може не дати вам зробити щось, що змінює лише пробіли, але я впевнений, що ви можете перекрити це деякими прапорами.


1
ОП шукала способу встановити за замовчуванням під час виконання а git diff. Це робить це для apply.
денішаскін

10

Старе запитання (2011 р.), Але тепер існує ярлик, за git diff -wяким стоїть --ignore-all-space

Ігноруйте пробіли при порівнянні ліній. Це ігнорує відмінності, навіть якщо в одному рядку є пробіл, де в другому рядку немає жодного.


2

було б чудово, якби це можливо за допомогою варіанту. але псевдонім працює досить добре. ось відповідні рядки з мого .gitconfig:

[diff]
    tool = mydiff
[difftool "mydiff"]
    cmd = "colordiff -NuBbwi \"$LOCAL\" \"$REMOTE\" | less -R"
[difftool]
    prompt = false
[alias]
    dt = difftool

це передбачає використання colordiff, який я рекомендую, даючи вам майже точну копію того, що показало б git diff , з двома відмінностями:

  1. рядок --- у colordiff забарвлений інакше, ніж той самий рядок у git diff (дуже незначна проблема)
  2. кожен файл відображається по одному (дратує проблема - хтось знає виправлення?)

ось мій / etc / colordiffrc:

plain=off
newtext=green
oldtext=red
diffstuff=cyan
cvsstuff=red

Mac OS X 10.9.2, версія git 1.8.5.2 (Apple Git-48)

(кольоровий Diff був отриманий з варіння)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.