Git: 1.Списать все файлы в ветке, 2.Сравнить файлы из разных веток - PullRequest
74 голосов
/ 16 декабря 2009
  1. Ищем команду типа ls -R или dir/s, которая может перечислить все файлы в коммите / ветви.
  2. Есть ли какая-нибудь команда, которая может сравнивать два файла из разных веток?

Ответы [ 4 ]

116 голосов
/ 16 декабря 2009
  1. git ls-tree -r --name-only <commit> (где вместо <commit> может быть <branch>).
    Возможно, вы также захотите использовать опцию -t, которая перечисляет подкаталоги, прежде чем перейти в них
  2. git diff <branchA>:<fileA> <branchB>:<fileB>,
    или если вы хотите сравнить тот же файл git diff <branchA> <branchB> -- <file>
19 голосов
/ 16 декабря 2009

Для сравнения одного и того же файла из разных веток:

git diff branch_1..branch_2 file.txt

Чтобы отобразить все файлы в древовидном объекте:

git ls-tree -r branch
16 голосов
/ 17 февраля 2012

Для просмотра списка всех файлов, добавленных в новую ветку

git diff --name-only branch1 master
2 голосов
/ 11 августа 2018

По состоянию на Git v2.1.0 [15.08.14]

Для перечисления вы можете использовать git ls-files для рекурсивного перечисления всех файлов в текущем каталоге / рабочем каталоге. Вы можете обратиться к Git-SCM Docs / git-ls-files или набрать man git-ls-files, если вы установили Git и у вас есть справочные страницы.

Имеются удобные опции для отображения файлов различными способами, такими как cached, staged, deleted, modified, ignored или others для неотслеживаемых. Он также поддерживает соответствующие шаблоны. Имея также --debug arg, вы можете легко перечислить creation time, modification time, inode id, owner & group id, size и flags для файлов.


Для сравнения двух веток просто используйте git diff <branch> <other branch>, как указано в других ответах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...