Як переглянути історію файлів у Git?


133

За допомогою Subversion я міг би використовувати TortoiseSVN для перегляду історії / журналу файлу.

Як я можу це зробити з Git?

Просто шукає запис історії для певного файлу, а потім можливість порівнювати різні версії.

Відповіді:


156

Використовуйте git logдля перегляду історії комісій. Кожна комісія має пов'язаний специфікатор редакції, який є хеш-ключем (наприклад, 14b8d0982044b0c49f7a855e396206ee65c0e787та b410ad4619d296f9d37f0db3d0ff5b9066838b39). Щоб переглянути різницю між двома різними комітами, використовуйте git diffперші кілька символів специфікаторів редагування обох комітетів, наприклад:

# diff between commits 14b8... and b410...
git diff 14b8..b410
# only include diff of specified files
git diff 14b8..b410 path/to/file/a path/to/file/b

Якщо ви хочете отримати огляд усіх відмінностей, які трапилися від зобов’язання взяти на себе зобов’язання, скористайтеся параметром git logабо git whatchangedвиправлення:

# include patch displays in the commit history
git log -p
git whatchanged -p
# only get history of those commits that touch specified paths
git log path/a path/b
git whatchanged path/c path/d

7
Дякуємо за підказку -p, що дуже корисно для того, щоб дізнатись, які редакції включали трохи коду.
Крістофер Пікслі

100

Схоже, ви хочете git diff та / або журнал git . Також перевірте gitk

gitk path/to/file
git diff path/to/file
git log path/to/file

3
Ось ще один кивок для gitk, який забезпечує чудовий спосіб перегляду всіх знімків одного файлу в git repo.
Рей Браун

1
За замовчуванням gitk показує відмінності плюс 10 рядків контексту, але що робити, якщо ви хочете переглянути знімок усього файлу? Просто встановіть "Рядки контексту" на велике значення (наприклад, 100000). Потім ви можете гортати назад і назад між коміксами і бачити весь файл у різні моменти часу. (Ви також можете шукати у файлі.)
antinome

35

Мені подобається використовувати gitk name_of_file

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


30

ви також можете використовувати tig для хорошого браузера сховищ git на базі ncurses. Щоб переглянути історію файлу:

tig path/to/file

29

Моє улюблене - git log -p <filename>це дасть вам історію всіх комісій даного файлу, а також різниці для кожного комітету.


11

Багато браузерів історії Git, включаючи git log(і 'git log --graph'), gitk (у Tcl / Tk, частина Git), QGit (у Qt), tig (інтерфейс текстового режиму для git, використовуючи ncurses), Giggle (в GTK +), обмеження шляху підтримки TortoiseGit та git-гепардів (наприклад gitk path/to/file).


@ RobertVuković Я знаю, що це старе питання ... але дивіться мою відповідь нижче!
brianc

4

Звичайно, якщо ви хочете щось наближене до TortoiseSVN, ви можете просто скористатися TortoiseGit .


За винятком того, що розширення оболонки TortoiseSvn містять команду для відображення історії одного файлу, тоді як TortoiseGit цього не робить.
Нейтрино

3

git log --all -- path/to/file повинен працювати


У моїй відповіді немає посилання @ineersa
Edson Medina

1
Це має бути головна відповідь. Мені не подобається використовувати
хитрі


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