git посмотреть историю файла

Просмотр истории изменений файла с помощью управления версиями Git

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

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

21 ответов

для этого я использую:

или следовать за именем файла мимо переименований

чтобы git генерировал исправления для каждой записи журнала.

для большего количества опций-на самом деле он может сделать много хороших вещей 🙂 чтобы получить только разницу для конкретного фиксации, вы можете

или любая другая редакция по идентификатору. Или использовать

для визуального просмотра изменений.

это покажет весь история (включая историю переименований и изменения для каждого изменения).

если вы предпочитаете оставаться текстовым, вы можете использовать Тиг.

используйте его для просмотра истории в одном файле: tig [filename]
Или просмотреть подробную историю РЕПО: tig

аналогично gitk но текст на основе. Поддерживает цвета в терминале!

пользователи SourceTree

Если вы используете SourceTree для визуализации вашего репозитория (это бесплатно и довольно хорошо), вы можете щелкнуть правой кнопкой мыши файл и выбрать Журнал Выбранный

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

или если вы хотите использовать мощный GUI вины:

резюме других ответов после прочтения их и играть немного:

обычная команда командной строки будет

но вы также можете использовать gitk (gui) или tig (text-ui), чтобы дать гораздо более читаемые человеком способы взглянуть на него.

в debian / ubuntu команда установки для этих прекрасных инструментов, как и ожидалось:

и в настоящее время я использую:

и используйте команду следующим образом:

выход будет выглядеть почти точно так же, как выход gitk. Наслаждаться.

Читайте также:  Питер авто трансмиссия краснопутиловская 65

я писал git-воспроизведение именно с этой целью

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

недавно я обнаружил tig и нашел его очень полезным. Есть несколько случаев, когда я бы хотел, чтобы он делал A или B, но в большинстве случаев это довольно аккуратно.

для вашего случая, tig может быть то, что вы ищете.

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

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

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

Он имеет некоторые незначительные проблемы, как показывает fatal: Not a valid object name на View вкладка при нажатии на исправление удаления, но я могу жить с этим. 🙂

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

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

где upperLimit-это start_line_number, а lowerLimit-это ending_line_number файла.

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

Если вы используете eclipse с плагином git, он имеет отличный вид сравнения с историей. Щелкните правой кнопкой мыши файл и выберите » сравнить с «=> «История»

Источник

Просмотр истории коммитов

Следующие несколько примеров используют очень простой проект «simplegit». Чтобы клонировать проект, используйте команду:

Если вы запустите команду git log в каталоге клонированного проекта, вы увидите следующий вывод:

Читайте также:  Родинка под мышкой что значит

По умолчанию (без аргументов) git log перечисляет коммиты, сделанные в репозитории в обратном к хронологическому порядке — последние коммиты находятся вверху. Из примера можно увидеть, что данная команда перечисляет коммиты с их SHA-1 контрольными суммами, именем и электронной почтой автора, датой создания и сообщением коммита.

Команда git log имеет очень большое количество опций для поиска коммитов по разным критериям. Рассмотрим наиболее популярные из них.

Сокращенный хеш коммита

Сокращенный хеш дерева

Сокращенный хеш родителей

Электронная почта автора

Относительная дата автора

Электронная почта коммитера

Относительная дата коммитера

Вам наверное интересно, какая же разница между автором и коммитером. Автор — это человек, изначально сделавший работу, а коммитер — это человек, который последним применил эту работу. Другими словами, если вы создадите патч для какого-то проекта, а один из основных членов команды этого проекта применит этот патч, вы оба получите статус участника — вы как автор и основной член команды как коммитер. Более детально мы рассмотрим разницу в главе Распределенный Git.

Данный вывод будет нам очень интересен в следующей главе, где мы рассмотрим ветвление и слияние.

Мы рассмотрели только несколько простых опций для форматирования вывода с помощью команды git log — на самом деле их гораздо больше. Наиболее распространенные опции для команды git log содержит описание как уже рассмотренных, так и нескольких новых опций, которые могут быть полезными в зависимости от нужного формата вывода.

Таблица 2. Наиболее распространенные опции для команды git log

Показывает патч для каждого коммита.

Показывает статистику измененных файлов для каждого коммита.

Показывает список измененных файлов после информации о коммите.

Показывает список файлов, которые добавлены/изменены/удалены.

Показывает только несколько символов SHA-1 чек-суммы вместо всех 40.

Отображает дату в относительном формате (например, «2 weeks ago») вместо стандартного формата даты.

Отображает ASCII граф с ветвлениями и историей слияний.

Показывает коммиты в альтернативном формате. Возможные варианты опций: oneline, short, full, fuller и format (с помощью последней можно указать свой формат).

Ограничение вывода

В таблице Опции для ограничения вывода команды git log вы можете увидеть эти и другие распространенные опции.

Опция Описание
Таблица 3. Опции для ограничения вывода команды git log

Показывает только последние n коммитов.

Показывает только те коммиты, которые были сделаны после указанной даты.

Показывает только те коммиты, которые были сделаны до указанной даты.

Показывает только те коммиты, в которых запись author совпадает с указанной строкой.

Показывает только те коммиты, в которых запись committer совпадает с указанной строкой.

Показывает только коммиты, сообщение которых содержит указанную строку.

Показывает только коммиты, в которых изменение в коде повлекло за собой добавление или удаление указанной строки.

Например, если вы хотите увидеть, в каких коммитах произошли изменения в тестовых файлах в исходном коде Git в октябре 2008 года, автором которых был Junio Hamano и которые не были коммитами слияния, вы можете запустить следующую команду:

Из почти 40 000 коммитов в истории исходного кода Git, эта команда показывает только 6, которые соответствуют этим критериям.

Источник

Читайте также:  все столицы османской империи за всю историю
Обучающий портал
Опция Описание