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 log -1 --stat

может работать

Безусловно самая простая команда для этого:

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, более интересные вещи смотрите ниже -

  1. Чтобы увидеть идентификатор фиксации (контрольная сумма SHA-1), имя автора, дату вместе со временем и сообщение о коммите -

    git log
    
  2. Чтобы увидеть еще некоторые статистические данные, такие как имена всех файлов, измененных во время этого коммита, количество вставок / удалений. Это очень удобно при просмотре кода -

    git log --stat
    
  3. Чтобы увидеть истории коммитов в некоторых симпатичных форматах:) (Далее следуют некоторые опции предварительной сборки)-

    • Если у вас слишком много коммитов для просмотра, эта команда покажет их в аккуратной отдельной строке

      git log --pretty=oneline
      
    • Чтобы увидеть краткую, среднюю, полную или даже более подробную информацию о вашем коммите, следуйте соответственно -

      git log --pretty=short
      git log --pretty=medium
      git log --pretty=full
      git log --pretty=fuller
      
  4. Вы даже можете использовать свой собственный формат вывода, используя format вариант -

    git log --pretty=format:"%an, %ae - %s" 
    

    где%an - имя автора, %ae - адрес электронной почты автора, %s - тема коммита и т. д.

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

git log -1 --name-status

Работает ли для меня.

$ 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, пока не достигнете записи, ссылающейся на оригинальный клон. Кстати, это тоже не сработает, если были сделаны какие-либо коммиты между моментом, когда вы клонировали проект, и когда вы выполнили проверку. В противном случае вы можете надеяться, что все ваши коммиты на локальном компьютере находятся на сервере, а затем повторно клонировать весь проект.

Надеюсь это поможет.

и без гита: tail -n1 .git/logs/HEAD | cut -d' ' -f1,8-

Другие вопросы по тегам