Любой способ получить git diff с изменениями коммита в одной команде - PullRequest
12 голосов
/ 02 августа 2011

Есть ли какой-нибудь способ, которым мы можем получить информацию о diff файла вместе с его идентификатором фиксации с помощью одной команды? В настоящее время "git diff tag1..tag2" дает мне полное изменение кода между двумя тегами, но не идентификатор фиксации и причины фиксации. Когда я использую «git log», это дает мне полное изменение фиксации с изменениями, которые меня не интересуют при сравнении двух тегов.

1 Ответ

22 голосов
/ 08 августа 2011

но это изменение также имеет идентификатор и причину фиксации, которые мне нужны в одном и том же файле различий

Я думаю, здесь есть небольшая путаница.Git-diff выводит разницу между одним коммитом и другим, то есть это не только один коммит, он представляет серию коммитов в указанном вами диапазоне (662a1fa..64f9766 в приведенном вами примере).Таким образом, это может быть несколько идентификаторов и сообщений фиксации, возможно, даже тысячи, если ваши теги достаточно далеко друг от друга.

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

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

git-diff показывает разницумежду a и z.
git-log показывает вам путь, которым нужно было стать z.

Имея это в виду, я предполагаю, что это, вероятно, то, что вы ищете:

git log --color -p --full-diff tag1..tag2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...