Как сравнить два тега?
Я хотел бы сделать различие между двумя тегами и зафиксировать изменения между этими двумя тегами. Не могли бы вы сказать мне команду?
6 ответов
$ git diff tag1 tag2
или показать журнал между ними:
$ git log tag1..tag2
иногда может быть удобно видеть только список файлов, которые были изменены:
$ git diff tag1 tag2 --stat
а затем посмотрите на различия для определенного файла:
$ git diff tag1 tag2 -- some/file/name
Тег - это только ссылка на последний коммит "по этому тегу", так что вы делаете различие между коммитами между ними.
Также хорошая ссылка: http://learn.github.com/p/diff.html
Если исходный код находится на Github, вы можете использовать их инструмент сравнения: https://help.github.com/articles/comparing-commits-across-time/
Для параллельного визуального представления я использую git difftool
с openDiff
установить для просмотра по умолчанию.
Пример использования:
git difftool tags/<FIRST TAG> tags/<SECOND TAG>
Если вас интересует только конкретный файл, вы можете использовать:
git difftool tags/<FIRST TAG>:<FILE PATH> tags/<SECOND TAG>:<FILE PATH>
Как примечание, tags/<TAG>
s можно заменить на <BRANCH>
Если вы заинтересованы в diff
Инг ветки.
Как сказал @Nakilon, это инструмент для сравнения, встроенный в github, если вы это используете.
Чтобы использовать его, добавьте URL-адрес репо с помощью "/ compare".
Количество вставок/удалений между 2 тегами (объединить все фиксации между тегами, например, 1 файл был изменен/зафиксирован 6 раз между тегами)
git log --numstat --format='' v1.0..v1.1 | awk '{files += 1}{ins += $1}{del += $2} END{print "total: "files" files, "ins" insertions(+) "del" deletions(-)"}'
total: 6 files, 57 insertions(+) 12 deletions(-)
разница между тегами, например, разница одного и того же файла в теге v1.0 и в v1.1
git diff --shortstat v1.0 v1.1
1 file changed, 50 insertions(+), 5 deletions(-)
Просто чтобы показать, что статистика дляdiff
(похоже наvimdiff
), и для всех коммитов между ними разные.
Пожалуйста, не используйте его, если вы ищете только команду, потому что основная цель этого решения - представить вам способ решения!
Как сказал Накилон, вы можете использовать " вне сравнения", а также (чтобы упростить жизнь) вы можете использовать скрипт git-cheat-sheet, который содержит некоторые полезные команды, включая следующие (он откроет установленный "вне сравнения" и будет показать разность тэгов):
./git_commands.sh -diff TAG1 TAG2