git журналу однієї редакції


181

У мене є комітет c. Я хочу отримати набір змін цієї точної фіксації c + метейнформації і жодної іншої. Чи є простіший спосіб, ніж git log -p c^..cце зробити?

Відповіді:



60

Відповідь Міхала Трибуса найкраща для простоти. Але якщо ви не хочете різниці у своєму виході, ви завжди можете зробити щось на кшталт:

git log -1 -U c

Це дасть вам журнал фіксації, і тоді ви будете мати повний контроль над усіма параметрами журналу git для вашої автоматизації. У вашому випадку ви сказали, що хочете встановити зміни. Найбільш зрозумілий для людини спосіб це:

git log --name-status --diff-filter="[A|C|D|M|R|T]" -1 -U c

Або якщо ви використовуєте git версію, що перевищує 1,8.X, це буде:

git log --name-status --diff-filter="ACDMRT" -1 -U c

Це дасть результати, схожі на:

commit {c}
Author: zedoo <zedoo@stackoverflow.com>
Date: Thu Aug 2 {time-stamp}

   {short description}
D    zedoo/foo.py
A    zedoo/bar.py

Звичайно , ви можете відфільтрувати в залежності від того події , які ви бачите припадок, і форматувати повернення , як ви хочете з допомогою традиційних ГИТ-лог команд , які добре документовані тут .


14
Якщо ви не хочете різниці, зробіть git show --name-only <sha1>!
дбн

16
Якщо ви просто не хочете різниці, використовуйте git show -s <commit>.
moeffju

3
Що робить -1? Де це документально зафіксовано?
алекс

1
@alex Дивіться результати в git help logрозділі "Обмеження обмеження". Або див. Git-scm.com/book/en/v2/… -<number> обмежує кількість комісій для виведення.
LarsH


0

Ви можете використовувати для фільтрування змін за описом фіксації:

git log --grep='part_of_description' -p

де git log --grep='part_of_description'виберіть комітети, що містять 'part_of_description', і -pпокажіть набір змін кожного комітету

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