• Как быть ЖКТ журнала показывают имена файлов, например, SVN лог-с V

    В SVN лог имеет "-вђ" режим, который выводит имена файлов изменены каждого коммита, так как:

    jes5199$ в SVN лог-с V------------------------------------------------------------------------ Р1 | jes5199 | 2007-01-03 14:39:41 -0800 (Ср, 03 янв 2007) | 1 линия изменилась путями: а /авторам /копирование /изменений в /эволюция /установить /на macosx 

    Есть ли быстрый способ получить список измененных файлов в каждый коммит в git?

  • Ответы

  • Попробуйте один из следующих.

    git log --name-status 

    или

    git log --name-only 

    или

    git log --stat 

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

    git show также многие команды.

    Это вроде как svn diff, но вы можете пройти его фиксации GUID и посмотреть, что дифф.

    Если вы хотите получить только имена файлов без остатка фиксации сообщений Вы можете использовать:

    git log --name-only --pretty=format: <branch name> 

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

    git log --name-status --pretty=format: <branch name>  git log --stat --pretty=format: <branch name> 

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

    git log --name-only --pretty=format: my_local_branch --not origin/master 

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

    Я использую этот:

    git log --name-status <branch>..<branch> | grep -E '^[A-Z]\b' | sort | uniq 

    которая выводит список файлов и их состояние (добавлены, изменены, удалены):

    A   sites/api/branding/__init__.py M   sites/api/branding/wtv/mod.py ... 

    Я использовал это на ежедневной основе

    log --stat --pretty=short --graph

    чтобы держать его коротким Добавить в псевдоним .gitconfig, пример:

    git ls в .gitconfig >> ls = log --stat --pretty=short --graph

    git diff --stat HEAD^! показывает измененные файлы и добавлять/удалять строки отсчетов за последний коммит (HEAD).

    Мне кажется, что нет единого командования, чтобы получить сжатое изложение, состоящее только из имен файлов и добавлении и удалении строк за несколько коммитов в один раз, так что я создал свой собственный bash-скрипт для этого:

    #!/bin/bash for ((i=0; i<=$1; i++)) do     sha1=`git log -1 --skip=$i --pretty=format:%H`     echo "HEAD~$i $sha1"     git diff --stat HEAD~$(($i+1)) HEAD~$i  done 

    Называться например. ./changed_files 99 чтобы получить изменения в конспективной форме от HEAD к HEAD~99. Можно передать например. к less.