Чтобы узнать, в какой именно ha sh разрешается любое выражение ревизии, используйте git rev-parse
, имя которого намекает на его полное назначение, в качестве полного набора инструментов синтаксического анализа параметров и аргументов для Git -расширяющих команд.
См. git revisions
для всех способов, которыми вы можете указать вещи, которые разрешаются в Git id.
Их много, потому что while Git ' Базовая структура (почти невероятно) проста, количество вещей, которые можно (и требований разработки) с ней сделать, бесконечно и головокружительно, и есть много удобств, чтобы сделать вспомогательные рабочие процессы более конкретными. , ну, удобно.
Если somecommit
относится к фиксации или тегу, somecommit:
относится к (помеченному) дереву фиксации, как и somecommit^{tree}
для тех случаев, когда голый :
может будут пропущены при проверке.
Следующий за :
синтаксис обычно является синтаксисом «получить меня к дереву» (ведущий :
- «получить меня до индекса»).
To перечислите дерево, используйте git ls-tree
. Краткий структурный обзор, например, git ls-tree -rd @:
Чтобы перечислить индекс, git ls-files
, который имеет множество удобных опций; это в основном швейцарский армейский нож списка файлов с индексированием, или, возможно, вся швейцарская армия, может быть, это просто я являюсь крохотной гиперболизацией c.
Итак, если somecommit:path/to/file
- это то, что указано в этом совершить по этому пути, :path/to/file
- это все, что указано в вашем индексе по этому пути. Там еще много всего, см. Эту ссылку.
И поскольку somecommit:
называет какое-то дерево коммитов, git rev-parse somecommit:
покажет вам его идентификатор; :path/to/file
именует запись индекса для этого пути, git rev-parse :path/to/file
покажет вам идентификатор содержимого в этой записи.
¹ Для слияния в полете Git сохраняет три записи, по одной для каждого из базового, нашего и их содержимого, поэтому вы и ваши инструменты, включая собственное автоматическое слияние Git, можете изучить различия. , в конечном итоге добавив правильный результат и обновив главную запись индекса. Git несколько загадочно называет эти «этапы», и вы можете ссылаться на них явно с помощью :1:path/to/file
и аналогично для 2 и 3. Основная запись - этап 0.