Git визуальная разность между ветвями
Этот ответ отлично подходит для визуального различия между двумя файлами, которые отмечены в git:
Как просмотреть 'git diff' с помощью программы визуального сравнения?
Однако, я бы хотел увидеть визуальный разницу между двумя ветвями. Пока что лучший вариант:
git diff --name-status master dev
который не очень информативен и не очень визуальен.
Есть ли что-нибудь лучше?
Ответы
Ответ 1
Используйте git diff
с range.
git diff branch1..branch2
Это будет сравнивать советы каждой ветки.
Если вы действительно хотите использовать какое-то программное обеспечение GUI, вы можете попробовать что-то вроде SourceTree, которое поддерживает Mac OS X и Windows.
Ответ 2
Чтобы увидеть визуальные различия всех различий между двумя ветвями, мне нравится объединять две ветки - БЕЗ фиксации слияния - и затем использовать git gui
или git Extensions, чтобы получить обзор различий.
Командная строка Git для слияния без коммитов:
git checkout branchA
git merge --no-commit --no-ff branchB
Затем, когда вы закончите, вы можете отменить слияние с
git merge --abort
(h/t к @jcugat для комментария)
Ответ 3
Если вы используете Intellij Idea IDE, вы можете просто использовать опцию сравнения в ветке.
![enter image description here]()
Ответ 4
Вы также можете сделать это с помощью gitk.
> gitk branch1 branch2
Сначала нажмите на кончик ветки1. Теперь щелкните правой кнопкой мыши на кончике ветки2 и выберите Diff this- > selected.
Ответ 5
Для тех из вас, кто работает в Windows с помощью TortoiseGit, вы можете получить несколько визуальное сравнение с помощью этой довольно неясной функции:
- Перейдите в папку, которую вы хотите сравнить.
- Удерживайте
shift
и щелкните его правой кнопкой мыши
- Перейдите в TortoiseGit → Обзор ссылки
- Используйте
ctrl
для выбора двух ветвей для сравнения.
- Щелкните правой кнопкой мыши свой выбор и выберите "Сравнить выбранные ссылки"
Источник: http://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/
Ответ 6
Если вы используете OSX или Windows 7+, Atlassian SourceTree работает очень хорошо для этого. Это бесплатно.
Вы можете видеть поэтапные изменения в настройке параллельной настройки, и вы легко сравниваете локальные с удаленными и любыми другими двумя ветвями. Когда выбрано несколько файлов, diff отображается как показано ниже:
![enter image description here]()
Предполагая, что вы проверили ветвь функции, и вы хотите увидеть diff против "master", щелкните правой кнопкой мыши на ветке "master" и выберите "Diff to current"
К сожалению, похоже, что он будет доступен в дистрибутивах * nix в ближайшее время.
Ответ 7
Попробуйте "diffftool" (при условии, что у вас есть настройка инструментов diff) - см. https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html
Я нашел статус имени для резюме, но difftool выполнит итерацию изменений (и параметр -d
предоставит вам представление каталога), например
$ git difftool their-branch my-branch
Viewing: 'file1.txt'
Launch 'bc3' [Y/n]:
...
Или как @rsilva4, упомянутый в -d
, и по умолчанию ваша текущая ветка просто - например. сравнить с мастером:
$ git difftool -d master..
... и да - есть много вариантов - https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
Ответ 8
Если вы используете github, вы можете использовать веб-сайт для этого:
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch... SHA_of_tip_of_another_branch
Это покажет вам сравнение двух.
Ответ 9
В GitExtensions вы можете выбрать обе ветки в сетке ревизий с нажатой клавишей Ctrl. Затем вы можете видеть файлы, которые отличаются между этими ветвями. Когда вы выберете файл, вы увидите diff для него.
Взято из здесь
Ответ 10
ОБНОВИТЬ
Mac: я сейчас использую SourceTree. Тщательно рекомендуется. Мне особенно нравится, как вы можете ставить/не ставить куски.
Linux: я имел успех с:
Например, чтобы установить smartgit
на Ubuntu:
Это делает работу:
git-diffall с инструментом различий GUI, таким как meld. Смотрите пункт 5 здесь:
http://rubyglazed.com/post/15772234418/git-ify-your-command-line
Здесь есть хороший пост о git и meld: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
Ответ 11
Если вы используете Eclipse, вы можете визуально сравнить свою текущую ветку в рабочей области с другим тегом/веткой:
![Eclipse workspace compare]()
Ответ 12
Вы можете использовать бесплатный P4Merge из Perforce, чтобы сделать это:
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
![введите описание изображения здесь]()
Подробности об интеграции с Git можно найти здесь и здесь
но краткое изложение приведенных выше ссылок:
- Поместите следующие биты в ~/.gitconfig, а затем вы можете сделать
$ git mergetool
и $ git difftool
для использования p4merge
- Обратите внимание, что
$ git diff
по-прежнему будет использовать встроенный просмотрщик встроенных различий по умолчанию:) (проверено с помощью Git версия 1.8.2)
Изменения для .gitconfig
[merge]
keepBackup = false
tool = p4merge
[mergetool "p4merge"]
cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$REMOTE\"" "\"$PWD/$LOCAL\"" "\"$PWD/$MERGED\""
keepTemporaries = false
trustExitCode = false
keepBackup = false
[diff]
tool = p4merge
[difftool "p4merge"]
cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\""
Ответ 13
Если вы используете отличный редактор WebStorm, вы можете сравнить его с любой отраслью, которую хотите:
![Webstorm git сравнить]()
Ответ 14
С функциональностью ядра Git вы можете многое сделать. Возможно, было бы неплохо указать, что вы хотели бы включить в визуальные различия. Большинство ответов сосредоточены на построчном различении коммитов, где ваш пример фокусируется на именах файлов, затронутых в данном коммите.
Один из визуальных элементов, который, похоже, не рассматривается, состоит в том, как увидеть коммиты, содержащиеся в ветвях (общие или уникальные).
Для этого видео я большой поклонник git show-branch
; он разбивает хорошо организованную таблицу коммитов на ветку назад к общему предку. - чтобы попробовать его в репо с несколькими ветвями с расхождениями, просто наберите git show-branch
и проверьте вывод - для записи с примерами см. Сравнение коммитов между ветвями Git
Ответ 15
Вот как можно увидеть визуальную разницу между целыми коммитами, в отличие от отдельных файлов, в Visual Studio (протестировано в VS 2017). К сожалению, он работает только для коммитов в пределах одной ветки: в "Team Explorer" выберите представление "Branches", щелкните правой кнопкой мыши по репо и выберите "View history", как показано на следующем рисунке.
![enter image description here]()
Затем история текущей ветки появляется в основной области. (Там, где ветки, которые закончились как более ранние коммиты в текущей ветке, помечены метками.) Теперь выберите пару коммитов с помощью Ctrl-Left, затем щелкните правой кнопкой мыши и выберите "Compare Commits..." во всплывающем меню.
Дополнительную информацию о сравнении веток в мире Microsoft см. В этом вопросе о стековом потоке: Различия между ветками git, использующими Visual Studio.