Просмотр истории изменений файла с помощью Git-версий - PullRequest
2785 голосов
/ 10 ноября 2008

Как посмотреть историю изменений отдельного файла в Git, подробности о том, что изменилось?

Я дошел до:

git log -- [filename]

, которая показывает мне историю изменений файла, но как мне получить содержимое каждого файла с изменениями?

Я пытаюсь перейти с MS SourceSafe, и раньше это было просто right-clickshow history.

Ответы [ 22 ]

15 голосов
/ 19 ноября 2012

Я написал git-play для этой цели

pip install git-playback
git playback [filename]

Преимуществом этого является отображение результатов в командной строке (например, git log -p), а также возможность пошагового выполнения каждого коммита с помощью клавиш со стрелками (например, gitk).

13 голосов
/ 17 сентября 2010

Или:

gitx -- <path/to/filename>

если вы используете gitx

9 голосов
/ 07 августа 2012

Если вы хотите просмотреть всю историю файла, , включая на , все остальные ветви используют:

gitk --all <filename>
7 голосов
/ 28 ноября 2012

С превосходными Git Extensions вы переходите к точке в истории, где файл еще существовал (если он был удален, в противном случае просто перейдите в HEAD), переключитесь на вкладку File tree щелкните файл правой кнопкой мыши и выберите File history.

По умолчанию он следует за файлом через переименования, а вкладка Blame позволяет увидеть имя в данной ревизии.

У него есть несколько мелких ошибок, например, отображение fatal: Not a valid object name на вкладке View при нажатии на ревизию удаления, но я могу с этим смириться. : -)

7 голосов
/ 10 ноября 2008

Если вы используете графический интерфейс пользователя git (в Windows) в меню «Репозиторий», вы можете использовать «Визуализация истории мастера». Выделите коммит в верхней панели и файл в правом нижнем углу, и вы увидите diff для этого коммита в левом нижнем углу.

5 голосов
/ 01 июня 2016

SmartGit

  1. В меню включить отображение неизмененных файлов: просмотреть / показать неизмененные файлы
  2. Щелкните правой кнопкой мыши файл и выберите «Журнал» или нажмите «Ctrl-L»
5 голосов
/ 13 августа 2015

Вы также можете попробовать это, в котором перечислены коммиты, которые изменили определенную часть файла (реализовано в Git 1.8.4).

Возвращенным результатом будет список коммитов, которые изменили эту конкретную часть. Команда:

git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>

где upperLimit - начальный_линий_номер, а нижний_лимит - конечный_линий-номер файла.

Подробнее на https://www.techpurohit.com/list-some-useful-git-commands

4 голосов
/ 01 декабря 2011

Ответ, который я искал, которого не было в этой теме, состоит в том, чтобы увидеть изменения в файлах, которые я подготовил для фиксации. т.е.

git diff --cached
4 голосов
/ 13 августа 2015

Если вы используете TortoiseGit, вы сможете щелкнуть правой кнопкой мыши по файлу и сделать TortoiseGit --> Show Log. В появившемся окне убедитесь, что:

  • 'Show Whole Project' не отмечен.

  • 'All Branches' отмечена.

3 голосов
/ 20 мая 2013

git diff -U <filename> даст вам унифицированный дифференциал.

Он должен быть окрашен в красный и зеленый. Если это не так, запустите: git config color.ui auto first.

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