Любой способ получить git diff с фиксацией изменений в одной команде

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

Ответ 1

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

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

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

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

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

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

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