В Git, типичная строка результата, возвращаемый командой git ls-files -s
выглядитВ чем смысл разных полей в выводе `git ls-files -s`?
100755 be2c2e9b0966253096472d4b482c458bc892e493 0 .gitignore
Что эти поля означают?
В Git, типичная строка результата, возвращаемый командой git ls-files -s
выглядитВ чем смысл разных полей в выводе `git ls-files -s`?
100755 be2c2e9b0966253096472d4b482c458bc892e493 0 .gitignore
Что эти поля означают?
Нет необходимости искать дальше, чем git ls-files
man page:
git ls-files
просто выводит имена файлов, если--stage
не указано в этом случае он выдает:[<tag> ]<mode> <object> <stage> <file>
(Флаг --stage
эквивалентно -s
.)
Что означают эти поля?
<mode>
- это биты режима. Подробнее в How to read the mode field of git-ls-tree's output<object>
является SHA соответствующего blob, то есть уникальным идентификатором для содержимого данного файла.<stage>
- номер этапа, который обычно равен 0
, но принимает ненулевые значения для файлов с конфликтами слияния.<file>
- это просто путь к файлу.Вы также спросить, в one of your follow-up comment,
Что отношение между
<object>
и<file>
?
Они полностью независимы, поскольку для генерирования связанного с ним хеша используются только содержимое файла (а не его путь/имя файла). Для того, чтобы убедить себя в том, что вы можете провести следующий эксперимент в хранилище игрушек:
# set things up
$ mkdir testgit
$ cd testgit/
$ git init
# write the same contents to two files
$ printf "foo\n" > README.md
$ printf "foo\n" > bar.txt
# stage the two files and run git ls-files
$ git add .
$ git ls-files -s
100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0 README.md
100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0 bar.txt
Обратите внимание, что, несмотря на то, что оба файл имеет разные имена, они имеют одинаковый ШАС, так как они имеют то же содержание.
Какова связь между '
@qazwsx объект является хешем содержимого файла, который также является адресом объекта git, используемого для хранения содержимого файла (поскольку git - это, по сути, файловая система с контентом, которая имеет встроенную систему управления версиями Сверху). – hobbs
Является ли содержимое адресованным '