Есть ли способ получить список всех новых/удаленных/измененных каталогов/файлов в локальном/удаленном репозитории w.r.t друг друга в GIT?
GIT список новых/измененных/удаленных файлов
Ответ 1
Лучший способ перечислить этот файл - использовать git status --porcelain
Например: Чтобы удалить ранее удаленные файлы:
git status --porcelain | awk 'match($1, "D"){print $2}' | xargs git rm
Ответ 2
Что вы, возможно, хотите, это что-то вроде:
git fetch # update what you know about the remote repo
git diff --name-status master origin/master
Но довольно сложно точно определить, какие ветки вы хотите отличить от своего вопроса.
Ответ 3
Я не уверен, что вы имеете в виду по отношению друг к другу, но если вам нужен отдельный список (например, все измененные файлы), вы можете использовать git ls-files
с правильными флагами (для измененных файлов он -m
), Если вы хотите получить всю эту информацию сразу, вы можете использовать git status --porcelain
, чтобы получить script -parsable вывод состояния.
Ответ 4
Один из способов сделать это - с помощью команды whatchanged
:
$ git whatchanged
Это показывает, какие файлы были изменены для каждой фиксации в дереве и могут быть использованы для изучения особенностей. Взгляните на git help whatchanged
Ответ 5
Используйте параметр сухого хода (-n) git add
:
git add -A -n
Ответ 6
используйте команду --name-status
пример с тегами:
git diff v1.0.1 v1.0.2 --name-status
пример с фиксацией:
git diff b79810fc4d be69e41d1c --name-status
он перечислит все обновленные файлы со своими статусами:
M
- изменен
D
- удалено
A
- добавлен
Ответ 7
Чтобы получить только имена файлов и статус измененных файлов, вы можете просто:
git diff --name-status
Вы получите голый вывод следующим образом:
M a.txt
M b.txt
Теперь перетащите вывод в cut
, чтобы извлечь второй столбец:
git diff --name-status | cut -f2
Тогда у вас будут только имена файлов:
a.txt
b.txt