Просмотр различий конфликтующего файла в git с помощью --word-diff
Допустим, я предпринял попытку слияния из ветви A в ветку B - слияние не удалось из-за конфликтов в файле F.
До сих пор я делаю
git diff --word-diff HEAD:F master:F
который становится скучным через некоторое время. Есть ли какая-то альтернативная команда из коробки, которая позволяет мне этого избежать, или мне придется сохранить этот маленький скрипт и сделать его доступным где-нибудь в $PATH моего компьютера?
Спасибо
2 ответа
Всякий раз, когда объем повторяющейся операции будет ограничен (то есть относительно коротким сеансом внутри одного терминала) и вряд ли произойдет снова в ближайшем будущем, я предпочитаю оборачивать его в функцию bash в текущей оболочке. Это позволяет избежать необходимости находить правильное имя для сценария, прежде чем помещать его в $PATH.
В вашем случае введите следующую строку в оболочке
function mydiff() { git diff --word-diff HEAD:"$1" master:"$1"; }
позволит вам выполнить diff с гораздо более короткой командой mydiff F
,
Леон ответил, что для этого можно создать крошечную функцию оболочки (или псевдоним оболочки), или, как прокомментировал Фродон, вы можете создать псевдоним Git.
Более полезно, во время конфликтного слияния, местный (--ours
) и другие (--theirs
) идентификаторы коммитов удобно называются HEAD
а также MERGE_HEAD
соответственно. Следовательно, вам не нужно жестко кодировать имя master
в вашу функцию оболочки, псевдоним оболочки или псевдоним Git и:
[alias]
wdiff = "!f() { git diff --word-diff HEAD:\"$1\" MERGE_HEAD:\"$1\"; }; f"
сделал бы здесь трюк, например.