Показывает, какие файлы были изменены между двумя ревизиями - PullRequest
1958 голосов
/ 05 мая 2009

Я хочу объединить две ветви, которые были разделены некоторое время и хотели узнать, какие файлы были изменены.

Наткнулся на эту ссылку: http://linux.yyz.us/git-howto.html, что было весьма полезно.

Инструменты для сравнения веток, с которыми я сталкивался:

  • git diff master..branch
  • git log master..branch
  • git shortlog master..branch

Интересно, есть ли что-то вроде "git status master..branch", чтобы видеть только те файлы, которые отличаются между двумя ветвями.

Без создания нового инструмента, я думаю, это самое близкое, что вы можете сделать сейчас (который, конечно, будет показывать повторы, если файл был изменен более одного раза):

  • git diff master..branch | grep "^diff"

Интересно, что-то я пропустил ...

Ответы [ 16 ]

6 голосов
/ 01 июня 2017

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

Это сравнит master с веткой, в которой мы находимся (которая является вторичной), и исходный код будет добавленными строками, а новый код будет считаться удаленными строками

git diff ..master

OR

Это также сравнит master с веткой, в которой мы находимся (которая является вторичной), и исходный код будет старыми строками, а новый код будет новыми строками

git diff master..
6 голосов
/ 04 октября 2016

Есть две ветви, скажем,

  • A (Филиал, над которым вы работаете)
  • B (еще одна ветка, с которой вы хотите сравнить)

Находясь в ветке А, вы можете набрать

git diff --color B

тогда это даст вам вывод

enter image description here

Важным моментом по этому поводу является

  1. Текст внутри зелёного цвета присутствует внутри ветви A

  2. Текст в красном присутствует в ветви B

0 голосов
/ 17 апреля 2019

Для людей, которые ищут решение с графическим интерфейсом, Git Cola имеет очень хороший "Просмотр веток" ( Diff -> Branches .. ).

0 голосов
/ 01 марта 2019
git diff revision_n revision_m

если revision_n и revision_m - это последовательные коммиты, то выводится так же, как git show revision_m

0 голосов
/ 20 июня 2018

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

  1. Скачать WinMerge
  2. Проверьте две ветви в разных папках
  3. Сравнение папок с папками с помощью WinMerge. Вы также можете легко внести изменения, если вы работаете с одной из веток.
0 голосов
/ 18 октября 2017

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

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

Помните, что у вас будет другой результат, если вы сравните master с your-branch и your-branch с master .

...