Как распечатать текущие файлы в git index?

Я могу напечатать текущее зафиксированное дерево с помощью:

  git cat-file -p master ^ {tree} 100644 blob 8fe01e69e28f7c6997c0f5372c015363947582d8 .angular-cli.json100644 blob 6975847ed145aaaa22  .dockerignore100644 блоб 1f354482f8681a1b017bc4fdde17a4802e84b06a .editorconfig100644 блоб 9c4b02c9bd7338416bcb4037c5d5fac4c116bca5 .env.example040000 дерево d9e02522647d4f28dc40f62dca564afa48fba019 .github код> 

Теперь я ищу, чтобы узнать, как печатать файлы в моем текущем индексе, поставленные файлы? Мне нужна команда низкого уровня, например git cat-file , а не команда высокого уровня.

Я вижу, что есть этот index файл:

  ls .git/index .git/index  

Но что это за команда для печати ее содержимого (опять же низкоуровневая команда с аргументом для этого файла)?


git cat- file печатает только содержимое объектов (деревья, капли и т. д.). Если вы хотите отобразить содержимое индекса, вам понадобятся так называемые, но разные — git ls-files . Используйте команду - stage , чтобы отобразить сцену:

  $ git ls-files --stage100644 234d33c1e3554c5f3428f0d7d5c508e4cec6d148 0 README.md100644 efdf34514e7d7d7cfcfdf34514e7d7d7fcfcfcfcfcfcfcfcfcfcfcfd05 /foo.h100644 a2d78b7702b46a25dd1fe86ec230a7911ed18e36 0 src/foo.c100644 7807599d8d4971566e3b92e474ee88ad9f0217aa 0 test.c  

— debug :

  $ git ls-files --debugREADME.md ctime:  1523823765: 79574029 mtime: 1523823765: 79245702 dev: 16777221 ino: 34669602 uid: 501 gid: 20 размер: 8253 флаги: 0src/foo.c ctime: 1523830223: 524847547 mtime: 1523830223: uido: 524623074  : 20 размер: 4071 флаги: 0src/foo.h ctime: 1523752084: 2627730 mtime: 1523752084: 2060254 dev: 16777221 ino: 34621108 uid: 501 gid: 20 размер: 36809 флаги: 0tests/response.c ctime: 1523826062: 78659995 mtime  : 1523826062: 78659995 dev: 16777221 ino: 34672776 uid: 501 gid: 20 размер: 30615 флаги: 0  

Вы можете попробовать с git ls-files:
git-scm.com/docs/git-ls-files — Показать информацию о файлах в индексе и рабочем дереве

PS Просто переместил это из комментария.



Git — вывести список всех файлов, находящихся в настоящее время в системе контроля версий?

Есть ли способ перечислить все файлы, находящиеся в настоящее время в системе контроля версий в git? (Не только те, которые были изменены).


Если вы хотите перечислить все файлы для определенной ветки, например master :

 git ls-tree -r master --name-only 

-r позволит ему рекурсивно переходить в подкаталоги и печатать каждый файл, который в настоящее время находится под контролем версий. Вы также можете указать HEAD вместо master , чтобы получить список для любой другой ветки, в которой вы можете находиться.

Если вы хотите получить список всех файлов, которые когда-либо существовали, см. здесь:

 git log --pretty = format: --name-only --diff-filter = A |  sort -u 

Команда git ls-files сделает то, что тебе нужно.

Источник: http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html

5


git ls-files будет только файлы печати в текущем рабочем каталоге.

Если, например, у вас есть репозиторий git для файлов точек ( core.worktree =/), тогда у вас будет файлы вне корня git, и эта простая команда больше не будет работать.

Короче говоря, это будет работать:

  git --git-  dir "` git rev-parse --git-dir` " -C" `git config core.worktree || pwd`"  ls-files  

Пример:

  mkdir ~/dotfilescd ~/dotfilesgit config core.worktree/# Игнорировать все файлы по умолчанию, иначе Git найдет все файлы в "/" echo "*"> .git/info /exclude # Добавить файлы в корень репозитория git и где-нибудь в рабочем дереве touch READMEgit add -f READMEgit add -f/etc/ssh/sshd_config # `git status` теперь будет  nt: # новый файл: ../../../etc/ssh/sshd_config# новый файл: READMEgit statusgit commit -m "Начальная фиксация" # На этом этапе `git ls-files` печатает только: # READMEgit ls  -files # Но вы можете распечатать все файлы внутри рабочего дерева.  Будет напечатано: # etc/ssh/sshd_config # home/yourusername/dotfiles/READMEgit --git-dir "` git rev-parse --git-dir` "-C" `git config core.worktree || pwd`"  ls-files  

Если вы хотите, чтобы пути указывались относительно к вашему текущему каталогу (оболочки), это выполнит свою работу:

  alias gls = 'git ls-tree -r master --name-only HEAD "` git config core.worktree` "'  

и в в приведенном выше примере будет напечатано

  README ../../../etc/ssh/sshd_config  

1


Вы также можете использовать gitk код> интерактивный просмотрщик репозитория.

1


Пожалуйста, посмотрите на изображение, справа есть два варианта патча и T Ри. Если вы выберете дерево, вы можете просмотреть структуру папок для каждой фиксации.

1

Оцените статью
clickpad.ru
Добавить комментарий