Як показати, що здійснив вчинок?


265

Дурний спосіб, який я знаю:

git diff commit-number1 commit-number2

будь-який кращий спосіб?

Я маю на увазі, що я хочу знати сам1 комісію, я не хочу додавати комісію2 перед цим як параметр.


14
Хоча "git show <commit>" є правильним рішенням, ви можете використовувати "git diff <commit> ^!" щоб отримати різницю між командою і його (першим) батьком. Докладніше див. У людини git-rev-parse (1).
Якуб Нарубський

Реквізит до @Jakub: git diff <commit>^!це відповідь, ІМХО. Це те, що ви бачите в перегляді на github.com
Кріс

Відповіді:



63

Чи

$ git log -p

робити те, що потрібно?

Перегляньте розділ про Git Log у книзі спільноти Git для отримання додаткових прикладів. (Або подивіться документацію .)

Оновлення: Як уже вказували інші ( Якуб і Бомбе ): хоча вищезгадане працює, git show - це насправді команда, яка покликана робити саме те, про що вимагали.


51

TL; DR

git show <commit>


Показати

Щоб показати, що робила комісія зі статистикою:

git show <commit> --stat

Журнал

Щоб показати журнал фіксування з різницями, що вводяться для кожної комісії в діапазоні:

git log -p <commit1> <commit2>

Що таке <commit>?

Кожна комісія має унікальний ідентифікатор, на який ми посилаємося тут <commit>. Унікальний ідентифікатор - хеш SHA-1 - контрольна сума вмісту, який ви зберігаєте, плюс заголовок. #TMI

Якщо ви не знаєте свого <commit>:

  1. git logдля перегляду історії фіксування

  2. Знайдіть зобов’язання, яке вас хвилює.


22

Я з'ясував, що "git show --stat" - найкращий з усіх тут, дає вам короткий підсумок комісії, які файли ви додавали та змінювали, не даючи вам цілу купу матеріалів, особливо якщо ви змінили багато файлів .


6

Це один із способів я знаю. З git, завжди, здається, існує більше, ніж один спосіб зробити це.

git log -p commit1 commit2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.