Git: Смотрите мой последний коммит
Я просто хочу видеть файлы, которые были зафиксированы в последнем коммите, точно так же, как я видел список, когда делал git commit
, К сожалению ищу
git "last commit" log
в гугле меня никуда не деться. А также
git diff HEAD^..HEAD
Конечно, это не то, что мне нужно, потому что это извергает и перемены.
19 ответов
Как определено в комментариях, кажется, что ОП ищет
$ git log --name-status HEAD^..HEAD
Это также очень близко к выводу, который вы получите от svn status
или же svn log -v
, с которыми знакомы многие люди, приходящие из subversion в git.
--name-status
ключ здесь; как отмечают другие люди в этом вопросе, вы можете использовать git log -1
, git show
, а также git diff
чтобы получить такой же вывод. Лично я склонен использовать git show <rev>
при просмотре отдельных ревизий.
Используйте git show:
git show --summary
Это покажет имена созданных или удаленных файлов, но не имена измененных файлов. git show
Команда поддерживает широкий спектр форматов вывода, которые отображают различную информацию о коммитах.
Безусловно самая простая команда для этого:
git show --name-only
Поскольку он перечисляет только файлы в последнем коммите и не дает вам все силы
Пример вывода:
commit fkh889hiuhb069e44254b4925d2b580a602
Author: Lord Vader <darth@deathstar.empire.gov>
Date: Sat May 4 16:50:32 2168 -0700
Changed shield frequencies to prevent Millenium Falcon landing
www/controllers/landing_ba_controller.php
www/controllers/landing_b_controller.php
www/controllers/landing_bp_controller.php
www/controllers/landing_h_controller.php
www/controllers/landing_w_controller.php
www/htdocs/robots.txt
www/htdocs/templates/shields_FAQ.html
Чтобы увидеть последний коммит
git log -1
Чтобы увидеть последние 2 коммита
git log -2
так далее....
Чтобы увидеть последние изменения коммита
git show HEAD
Или увидеть изменения последнего последнего коммита
git show HEAD~1
А для дальнейшего просто замените "1" выше на требуемый порядковый номер коммита.
После того, как вы сделаете несколько коммитов или клонируете / извлекаете репозиторий, вы можете захотеть посмотреть, какие коммиты были сделаны, просто проверьте эти простые решения, чтобы увидеть историю ваших коммитов (от последнего / последнего коммита до первого).
Для последнего коммита просто запустите эту команду git log -1
, более интересные вещи смотрите ниже -
Чтобы увидеть идентификатор фиксации (контрольная сумма SHA-1), имя автора, дату вместе со временем и сообщение о коммите -
git log
Чтобы увидеть еще некоторые статистические данные, такие как имена всех файлов, измененных во время этого коммита, количество вставок / удалений. Это очень удобно при просмотре кода -
git log --stat
Чтобы увидеть истории коммитов в некоторых симпатичных форматах:) (Далее следуют некоторые опции предварительной сборки)-
Если у вас слишком много коммитов для просмотра, эта команда покажет их в аккуратной отдельной строке
git log --pretty=oneline
Чтобы увидеть краткую, среднюю, полную или даже более подробную информацию о вашем коммите, следуйте соответственно -
git log --pretty=short git log --pretty=medium git log --pretty=full git log --pretty=fuller
Вы даже можете использовать свой собственный формат вывода, используя
format
вариант -git log --pretty=format:"%an, %ae - %s"
где%an - имя автора, %ae - адрес электронной почты автора, %s - тема коммита и т. д.
Это может помочь вам с вашими историями коммитов для получения дополнительной информации нажмите здесь.
$ git diff - только для имени HEAD^..HEAD
или же
$ git log - только для имени HEAD^..HEAD
На этот вопрос уже дан ответ выше, в котором указаны имена файлов в последней фиксации с помощью git log / других команд. Если кто-то хочет увидеть, что все изменилось в последней фиксации (различия строк), вы можете использовать эту команду -
git show
Это автоматически отображает различия строк в последней фиксации.
git diff --stat HEAD
Это показывает тот же diffstat, что и ваш последний коммит.
Нравиться
git log -1 --stat
вы можете использовать
git show --stat
.
Другой способ перечислить только файлы - использовать:git diff-tree --no-commit-id --name-only -r HEAD^..HEAD
Или вы можете использовать любые два идентификатора фиксации
Чтобы получить мое последнее сообщение о фиксации только в git
git log --format=%B -n 1 $(git log -1 --pretty=format:"%h") | cat -
Вы можете запустить
git show --source
он показывает автора, дату, сообщение фиксации и diff --git для всех измененных файлов в последней фиксации.
Чтобы увидеть предыдущий коммит SHA
git log -n 2 --pretty=format:"%h" | tail -n 1
если вы хотите видеть только имена файлов в последней фиксации
git diff HEAD@{1} --name-only
если вы хотите также видеть изменения содержимого, удалите параметр --name-only
если вы хотите сравнить текущее состояние со старыми коммитами, увеличьте {n}
Если вы говорите о поиске самого последнего и лучшего коммита после того, как вы выполнили git checkout какого-то более раннего коммита (и забыли записать хэш HEAD перед выполнением проверки), большинство из вышеперечисленного не вернет вас туда, где ты начал. git log - [some #] показывает только журнал из текущей позиции HEAD, которая не обязательно является самой последней фиксацией (состояние проекта). Checkout отключит ГОЛОВУ и укажет на то, что вы выписали.
Вы можете просмотреть весь git reflog, пока не достигнете записи, ссылающейся на оригинальный клон. Кстати, это тоже не сработает, если были сделаны какие-либо коммиты между моментом, когда вы клонировали проект, и когда вы выполнили проверку. В противном случае вы можете надеяться, что все ваши коммиты на локальном компьютере находятся на сервере, а затем повторно клонировать весь проект.
Надеюсь это поможет.