Pycharm сравнивает два файла

Обновлено: 02.07.2024

Это диалоговое окно отображается при сравнении двух файлов или двух версий файла (локальные изменения или изменения между локальными файлами и их версиями в удаленном репозитории). Вы можете сравнивать файлы любых типов, включая двоичные файлы и файлы .jar. Чтобы открыть диалоговое окно, выберите два файла для сравнения или файл для сравнения его версий и нажмите Ctrl+D .

Средство просмотра различий предоставляет мощный редактор, поддерживающий завершение кода, живые шаблоны и другие функции.

Средство просмотра различий и слияния

Подсказка и ярлык

Предыдущая разница/Следующая разница Shift+F7 F7

Перейти к следующему или предыдущему различию.

При достижении последнего или первого отличия PyCharm предлагает щелкнуть кнопки со стрелками или еще раз нажать F7 / Shift+F7 и сравнить другие файлы, измененные локально. Это поведение зависит от параметра «Перейти к следующему файлу после достижения последнего изменения» в настройках средства просмотра различий.

Это поведение поддерживается, только когда средство просмотра различий вызывается из окна инструмента фиксации Alt+0 .

Сравнить предыдущий/следующий файл

Сравнить локальную копию предыдущего или следующего файла с его обновлением с сервера.

Эти элементы управления доступны, только если локально изменено более одного файла.

Перейти к измененному файлу Ctrl+N

Показать все измененные файлы в текущем наборе изменений и перейти к ним. Это действие доступно только при просмотре изменений в нескольких файлах.

Откройте выбранный файл в редакторе. Курсор помещается в то же положение, что и в средстве просмотра различий .

Выберите режим просмотра: параллельное или объединенное. В параллельном режиме есть две панели, в унифицированном режиме — одна панель.

Вы можете редактировать код и выполнять действия Apply , Append , Revert в обоих средствах просмотра.

Вы можете изменить текст только в правой части параллельного просмотра или в нижней строке объединенного просмотра.

Вы можете редактировать только локальные версии ваших файлов. Вы не можете редактировать файлы, имеющие статус только для чтения.

Укажите, как средство просмотра различий должно обрабатывать пробелы.

Не игнорируйте : пробелы важны, и все различия выделены. Этот параметр выбран по умолчанию.

Обрезать пробелы: обрезать пробелы, если они появляются в конце и в начале строки ( ("\t", " ")).

Если две строки отличаются только конечными пробелами, эти строки считаются равными.

Если две строки различаются, пробелы в конце не выделяются в режиме "По слову".

Игнорировать пробелы : пробелы не важны, независимо от их расположения в исходном коде.

Игнорировать пробелы и пустые строки : игнорируются пробелы и пустые строки. Следующие объекты игнорируются:

все пробелы (как в параметре "Игнорировать пробелы")

все добавленные или удаленные строки, состоящие только из пробелов

все изменения, состоящие из разделения или соединения строк без изменения частей, не содержащих пробелов.

Например, в этом режиме не выделяются различия между a b c и a \n b c.

Выберите способ выделения детализации различий.

Выделить слова: измененные слова выделяются

Выделить строки: измененные строки выделяются

Выделять разделенные изменения : если выбран этот параметр, большие изменения разбиваются на более мелкие.

Например, A \n B и A X \n B X рассматриваются как два изменения, а не одно.

Выделить символы: измененные символы выделяются

Не выделять: если выбран этот параметр, различия вообще не выделяются.

Используйте параметр "Не выделять" при работе с файлами, которые были значительно изменены. В таких случаях выделение может вызвать дополнительные трудности во время рецензирования.

Свернуть неизмененные фрагменты

Свернуть все неизмененные фрагменты в обоих файлах. Количество несворачиваемых неизмененных строк настраивается на странице настроек Diff & Merge. Чтобы открыть страницу Diff & Merge, откройте настройки, нажав Ctrl+Alt+S, и перейдите к Tools | Сравнение и объединение .

Нажмите эту кнопку для одновременной прокрутки обеих панелей различий. Если эту кнопку отпустить, каждую панель можно будет прокручивать независимо.

Открыть список доступных настроек.

Эти команды также доступны из контекстного меню окна средства просмотра различий.

Включить в коммит Alt+I

Этот флажок появляется только в том случае, если вы вызываете средство просмотра различий из диалогового окна "Зафиксировать изменения" с несколькими измененными файлами (все из которых не выбраны), и вы изучаете различия между ними и нажимаете последнее различие в файле.

Установите этот флажок, если хотите включить проверенный файл в фиксацию.

Откройте браузер и откройте соответствующую страницу справки.

Переключение между панелями средства просмотра различий. На активной панели есть курсор.

Применить различия между панелями (в случае параллельного просмотра) или между строками (в случае объединенного просмотра).

Кнопки шеврона могут менять свое поведение:

Нажмите и для применения изменений. Это поведение используется по умолчанию.

Нажмите Ctrl, чтобы изменить или чтобы добавить или добавить изменения.

Нажмите на этот значок, чтобы открыть список параметров, позволяющих сравнивать разные версии файла для разрешения конфликта.

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

Применить все неконфликтующие изменения

Нажмите эту кнопку, чтобы применить все неконфликтующие изменения. Вы также можете сделать это поведение автоматическим, установив флажок Автоматически применять неконфликтующие изменения на странице Различия и слияния диалогового окна Настройки/Настройки.

Применить неконфликтующие изменения слева/справа

Нажимайте эти кнопки, чтобы объединить не конфликтующие изменения в левой и правой частях диалогового окна.

Аннотировать с помощью GitBlame

Этот параметр доступен только из контекстного меню желоба.

Используйте этот параметр, чтобы выяснить, кто и когда внес какие изменения в версию файла в репозитории. Представление аннотаций позволяет просмотреть подробную информацию о каждой строке кода, например версию, из которой эта строка возникла, идентификатор пользователя, зафиксировавшего эту строку, и дату фиксации.

Подробнее об аннотациях см. в разделе Аннотации VCS.

Сочетания клавиш

Используйте это сочетание клавиш, чтобы отобразить всплывающее меню наиболее часто используемых команд сравнения.

Используйте это сочетание клавиш для переключения между левой и правой панелями.

Используйте это сочетание клавиш, чтобы отменить или повторить операцию слияния. Конфликты будут синхронизированы с текстом.

Команды контекстного меню

Это контекстное меню доступно в середине редактора:

Выберите эту команду проверки, чтобы отображать пробелы в виде точек в средстве просмотра различий.

Показать номера строк

Выберите эту команду проверки, чтобы отобразить номера строк в средстве просмотра различий.

Показать направляющие отступов

Выберите эту команду проверки, чтобы PyCharm отображал вертикальные линии в средстве просмотра различий, чтобы указать позиции отступов.

Выберите эту команду проверки, чтобы PyCharm переносил строки кода при изменении размера диалогового окна.

Используйте этот пункт меню, чтобы выбрать уровень выделения в средстве просмотра различий. Дополнительные сведения об уровне выделения см. в разделе Изменение уровня выделения файла.

Выберите эту команду проверки, чтобы аннотировать изменения.

Эта команда доступна только для файлов, находящихся под контролем версий.

Это контекстное меню доступно в обоих редакторах:

Выберите эти команды, чтобы принять или добавить строки, показанные в средстве просмотра различий.

Сравнить с буфером обмена

Выберите эту команду, чтобы сравнить файл на соответствующей панели средства просмотра различий с содержимым буфера обмена.

Выберите эту команду проверки, чтобы аннотировать изменения.

Эта команда доступна только для файлов, находящихся под контролем версий.

Это контекстное меню доступно в правой части средства просмотра различий:

Перейти только к проблемам с высоким приоритетом/Перейти к следующей проблеме

Нажмите один из этих переключателей, чтобы определить способ навигации между обнаруженными проблемами.

Настроить уровень выделения

Нажмите, чтобы отобразить ползунок для изменения уровня выделения в средстве просмотра различий.

Показывать линзу кода при наведении курсора на полосу прокрутки

Позволяет просматривать код за пределами видимой области средства просмотра различий при наведении указателя мыши на полосу прокрутки.

Советы по продуктивности

Сравнить два SQL-запроса

Вы можете сравнить содержимое буфера обмена с выбранной частью SQL-запроса.

Скопируйте запрос SQL в буфер обмена.

Выберите и щелкните правой кнопкой мыши запрос в редакторе, с которым вы хотите сравнить запрос в буфере обмена. Не выбирая запрос, вы сравниваете содержимое буфера обмена со всем файлом.


Иногда у вас есть несколько разных версий файлов или папок, связанных с вашим проектом локально, или вы только что загрузили его из удаленного источника. В этом случае крайне важно работать с самой актуальной копией. Если вам нужно объединить изменения и синхронизировать папки, то это может стать еще более сложным, а также трудным для выполнения вручную без какой-либо поддержки.

Хорошей новостью является то, что вы можете быстро и удобно сравнивать и/или синхронизировать файлы/папки под руководством и при поддержке вашей IDE без каких-либо внешних инструментов.PhpStorm и другие интегрированные среды разработки для платформы IntelliJ помогают исследовать различия во многих ситуациях: различия между файлами, каталогами, версиями одного и того же файла под контролем версий или в локальной истории, объектами базы данных, локальными и удаленными файлами.

В этом посте мы сосредоточимся на сравнении локальных файлов и папок.


Сравнение файлов

Вы можете сравнить а) любые два файла в вашем проекте, б) выбранный файл с файлом, открытым в редакторе, или в) файл в редакторе с содержимым буфера обмена. Все сравнения выполняются в Средстве просмотра различий.

Чтобы сравнить два файла, нажмите и удерживайте Ctrl, а затем щелкните два файла в окне инструментов проекта. В контекстном меню выбора выберите Сравнить два файла (или Ctrl+D). Если вы выберете один файл в окне инструментов проекта, в контекстном меню появится команда Сравнить файл с редактором. Средство просмотра различий показывает содержимое выбранного файла на левой панели и содержимое активной вкладки редактора на правой панели.

Чтобы сравнить файл с содержимым буфера обмена, откройте файл в редакторе, щелкните правой кнопкой мыши панель редактора и выберите в контекстном меню Сравнить с буфером обмена:


Просмотр различий показывает все различия и выделяет исходный код. Вы можете перемещаться между изменениями и выполнять действия, нажимая значки (например, вставка и т. д.).

Сравнение папок

Папки сравниваются путем сравнения всех файлов в двух папках на основе их размеров, содержимого или временных меток. Просмотр различий показывает содержимое выбранных каталогов на левой и правой панелях. Содержимое выбранного файла отображается в нижней панели с выделенными различиями. Помимо изучения различий, вы также можете использовать этот инструмент для синхронизации содержимого папок.

Чтобы сравнить две папки, нажмите и удерживайте Ctrl, щелкните два каталога в окне инструментов проекта, затем выберите в контексте Сравнить каталоги. меню выделения (или нажмите Ctrl+D). Кроме того, вы можете выбрать папку в окне инструментов проекта, выбрать Сравнить с в контекстном меню выбора, а затем выбрать второй каталог в диалоговом окне:



В Средстве просмотра различий вы можете проверить все различия и выполнить любые необходимые действия. Файлы можно перемещать из одной папки в другую, а папки можно полностью синхронизировать.

Вы также можете открыть средство просмотра различий, не запуская PhpStorm. Используйте эту команду:

где path_1 и path_2 — это пути к сравниваемым папкам.

Используйте эти функции IDE для сравнения файлов и папок, чтобы вы всегда могли работать с последней версией исходного кода.

WebStorm позволяет просматривать различия между любыми файлами ( Ctrl+D ), папками и текстовыми источниками, а также между локальными файлами и версиями их репозиториев.

Сравнить файлы

WebStorm отображает различия в средстве просмотра различий для файлов:

сравнение файлов

Чтобы применить изменения, используйте кнопки с изображением шеврона и .

Чтобы добавить изменения, нажмите Ctrl — кнопки превратятся в .

Сравнить два файла

В окне инструмента "Проект" выберите файлы, которые нужно сравнить, и выберите "Сравнить файлы" или нажмите Ctrl+D .

Чтобы выбрать два файла, которые не перечислены рядом друг с другом, удерживайте нажатой клавишу Ctrl.

В качестве альтернативы выберите один файл, выберите «Сравнить с» в его контекстном меню и выберите файл, который не входит в ваш проект.

Чтобы отобразить скрытые файлы, нажмите Windows или нажмите Command+Shift+. на Mac OS.

Сравнить активный редактор с буфером обмена

Щелкните правой кнопкой мыши в любом месте редактора и выберите «Сравнить с буфером обмена» в контекстном меню.

Сравнить активный редактор с файлом проекта

Щелкните правой кнопкой мыши файл, который вы хотите сравнить с текущим открытым файлом в окне инструмента "Проект".

Выберите «Сравнить файл с редактором» в контекстном меню.

Сравнить активный редактор с любым файлом

Если вам часто нужно сравнивать файлы, которые находятся за пределами вашего проекта, с активным редактором или вы не хотите открывать окно инструментов проекта, вы можете использовать параметр «Сравнить файл с редактором», который позволяет выбрать любой файл и сравнить это с активным редактором.

Чтобы добавить это действие в контекстное меню вкладки редактора:

Нажмите Ctrl+Alt+S, чтобы открыть настройки IDE, и выберите Внешний вид и поведение | Меню и панели инструментов .

На правой панели разверните узел всплывающего меню вкладки «Редактор», нажмите «Добавить после» и выберите действие «Сравнить файл с редактором» в разделе «Системы управления версиями | Сравнение и объединение .

Сравнить локальный файл с его версией репозитория

Выберите измененный файл в любом месте окна инструмента контроля версий.

Нажмите на панели инструментов или нажмите Ctrl+D .

Советы по продуктивности

Чтобы назначить ярлыки для действий применения и добавления, откройте страницу раскладки клавиш в настройках IDE, нажав Ctrl+Alt+S, и найдите эти действия в разделе Системы управления версиями | Сравнение и объединение .

При сравнении двух файлов или файла с содержимым буфера обмена можно поменять местами стороны, щелкнув на панели инструментов.

Сравнить папки

WebStorm позволяет сравнивать файлы в двух папках по их размеру, содержимому или отметке времени. Различия отображаются в средстве просмотра различий для папок:

сравнение папок

На верхней панели перечислены все файлы в выбранных папках, а на нижней панели показаны различия между двумя версиями выбранного файла (см. Сравнение файлов).

Вы также можете открыть средство просмотра различий, не запуская WebStorm. Выполните следующую команду:

где path_1 и path_2 — это пути к папкам, которые вы хотите сравнить.

Сравнить папки

Выберите папки, которые вы хотите сравнить, в окне инструмента "Проект".

В контекстном меню выберите «Сравнить каталоги» или нажмите Ctrl+D .

Используйте следующие кнопки панели инструментов для фильтрации списка:

: нажмите, чтобы отобразить файлы, которые есть в левой папке, но отсутствуют в правой.

: нажмите, чтобы отобразить файлы, которые есть в правой папке, но отсутствуют в левой.

: нажмите, чтобы отобразить файлы, которые присутствуют в обеих папках, но чье содержимое, временная метка или размер различаются.

: нажмите, чтобы отобразить файлы, находящиеся в обеих папках и идентичные с точки зрения параметра, выбранного в раскрывающемся списке «Сравнить».

Синхронизировать папки

WebStorm позволяет синхронизировать содержимое двух папок или применять изменения из одной папки в другую.

Для каждого файла нажимайте значок в столбце *, пока не установите действие для этого файла.

: скопировать выбранный элемент из левой папки в правую. Если такой файл уже существует в нужной папке, он будет перезаписан.

: скопировать выбранный элемент из правой папки в левую. Если такой файл уже существует в левой папке, он будет перезаписан.

: никаких действий выполняться не будет (два файла идентичны).

: никаких действий выполняться не будет (это два разных файла).

: удалить выбранный элемент.

Выполните одно из следующих действий:

Чтобы применить выбранное действие к текущему элементу, нажмите кнопку "Синхронизировать выбранное" на панели инструментов.

Чтобы применить выбранные действия ко всем элементам, нажмите кнопку "Синхронизировать все" на панели инструментов.

Сравнить разные файлы в двух папках

Иногда в одной папке может находиться файл, а в другой папке другой файл с таким же именем (например, VCS_library_1.4 и VCS_library_1.5 ). Это могут быть версии одного и того же файла, который вы хотите сравнить. Также может возникнуть ситуация, когда вы думаете, что файл был переименован, но в остальном он идентичен файлу в другой папке. WebStorm позволяет сравнивать два файла, один из которых находится в правой папке, а другой — в левой, хотя такие файлы рассматриваются как разные объекты.

Это действие доступно только для файлов в папках с одинаковым относительным путем.

Выберите файлы, которые хотите сравнить, на левой и правой панелях.

Нажмите значок «Сравнить новые файлы друг с другом» на панели инструментов. Различия между выбранными файлами будут отображаться на нижней панели.

Сравнить любые текстовые источники

Помимо сравнения содержимого файлов или папок, вы можете открыть пустое средство просмотра различий и вставить любой текст или перетащить файлы на правую и левую панели для сравнения. Это может быть полезно, например, если вы хотите сравнить вывод консоли приложения с выводом того же приложения, хотя и немного измененного.

Нажмите Ctrl+Shift+A и начните вводить текст, чтобы найти действие «Открыть пустое окно различий».

Вставьте любой текст, который вы хотите сравнить, на левой и правой панелях.

Советы по продуктивности

На странице Keymap настроек IDE Ctrl+Alt+S найдите это действие в разделе Системы управления версиями | Сравнение и объединение .

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

Мне очень нравится инструмент сравнения IntelliJ. Мне интересно, можно ли использовать этот инструмент для сравнения двух произвольных файлов. т.е.файлы НЕ в проекте IntelliJ. Просто выбрать два файла в файловой системе и сравнить их? А если я хочу разделить две строки? В моем текстовом редакторе я просто создал два новых документа, вставил текст и сравнил их, а затем не сохранил файлы, когда закончу. Возможно ли это?


10 ответов 10

Нашел эту командную строку:

на MacOSX: (IDEA EAP 11)

В MacOSX он не может работать, когда открыт IDEA (11).

в Windows: (IDEA EAP 12)

Он запускается, даже если IDEA уже открыт.

У меня возникают проблемы при попытке сравнить файлы без расширений (или расширения, которые не совпадают)

Непосредственно из IDEA (EAP 12)

Не так просто, но работает.

  • Файл > Открыть. > выберите "file1.txt"
  • Файл > Открыть. > выберите "file2.txt"
  • Создайте «Список избранного» и добавьте оба файла в этот список избранного. (для этого: ctrl+щелчок правой кнопкой мыши на вкладке с именем файла в редакторе > добавить в избранное > выбрать только что созданный список избранного - см. скриншот)
  • Наконец, откройте представление «Избранное» (Alt+2 или щелкните по нему слева или в окне IDEA).
  • Выберите оба файла.
  • Щелкните правой кнопкой мыши : "сравнить два файла" (или Ctrl+D)

добавить в избранное


Вопрос явно о двух ПРОИЗВОЛЬНЫХ файлах, которых еще нет в представлении проекта. Вы не можете выбрать два файла, которые не существуют ни в одном представлении, поэтому вам нужно создать для них избранное.

Я всегда боролся с этим и начал перетаскивать эти файлы в свой проект, просто чтобы сравнить их и потом удалить. Добавление в избранное — хороший обходной путь.

@TimoTürschmann .bashrc alias idiff='"C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2.2\bin\idea64.exe" diff '

В IntelliJ Idea 13 есть функция "Сравнить с буфером обмена". Эта функция сравнивает текущий открытый файл с версией, которую вы скопировали в буфер обмена. Это отличный и простой способ легко сравнить и объединить два файла. Его также можно использовать для сравнения двух произвольных блоков кода. Не могу понять, почему один блок работает, а другой нет? Используйте эту функцию.

Этот параметр доступен в разделе «Просмотр» > «Сравнить с буфером обмена». Я назначил легко запоминающееся сочетание клавиш для быстрого доступа к этой функции.


Это действительно здорово, я искал что-то подобное в меню «Правка», а когда не смог найти, предположил, что в IntelliJ его нет! :)

Знаете ли вы, можно ли открыть пустое окно сравнения, чтобы можно было сравнить два разных фрагмента скопированного/вставленного текста? Я делаю это все время, но теперь, работая с Mac, кажется, что все инструменты сравнения хотят работать только с файлами. Это удобно для извлечения фрагментов текста из документов, чтобы увидеть, что изменилось, сравнения только одной функции в файле и т. д.

Читайте также: