2009-07-10 3 views
24

У меня довольно большой разброс двух ветвей GIT и хотелось бы открыть их в каком-то приятном пользовательском интерфейсе. Что-то, что показывает мне diff, легко, и, надеюсь, я смогу объединить различия один за другим. git diff довольно сложно работать.GIT diff GUI

+0

Я собираюсь добавить это как комментарий, так как я никогда не использовал его, но делает ли [gitk] [1] трюк? [1]: http://www.kernel.org/pub/software/scm/git/docs/gitk.html – seth

+0

кричит ... извините. комментарии были отформатированы. – seth

+0

gitk ортогонален. – jrockway

ответ

23

Ответ git difftool (по крайней мере, для версии git 1.6.3 и выше). Помните, что он просто вызывает сконфигурированный или автоматически найденный графический инструмент diff.

+3

Пример: git difftool --tool = opendiff testbranch master – daniel

+1

Вместо «testbranch master», который будет показывать различия между testbranch и master, при просмотре ветви «testbranch» вы часто хотите видеть только коммиты на этой ветке. Используйте этот «master ... testbranch» для этого (три периода). Если testbranch является текущим HEAD, тогда это может быть сокращено до «master ...» –

+0

@JonathanHartley: Diff всегда имеет около двух конечных точек, а не диапазон диапазонов , В браузере графического репозитория, таком как, например, 'gitk' (или' git log -graph') 'master ... testbranch' показывает обе ветви для общего предка. Для diff 'master ... testbranch' является ярлыком для diff of common ancestor и (я думаю)' testbranch'. –

1

Если вы находитесь в процессе слияния, git diff имеет действительно хороший синтаксис, где первые два столбца показывают происхождение каждой строки в виде унифицированного слияния diff. Оттуда легко разрешить конфликты с любым редактором.

Есть ли у вас красивые цвета? Вот отрывок из моего ~/.gitconfig:

 
[color] 
    diff = auto 
    branch = auto 
    status = auto 
    interactive = auto 

Во всяком случае, посмотрите на kdiff3, например. Вы можете указать инструмент, который будет использоваться для слияния, см. В документах git-mergetool.

+2

Запуск «git mergetool» - правильный ответ, FWIW. – jrockway

23

Я использую kompare:

git diff | kompare - 

kompare не ограничивается мерзавца, вы можете также сделать

svn diff | kompare - 
bzr diff | kompare - 
diff -Naur clean/ patched/ | kompare - 
kompare bug3.fix.diff 

... Вы получаете идею.

+0

Спасибо. Работает также с 'meld'. – elpddev