Какие сантехнические и фарфоровые команды?
За git
В командах есть это различие между командами "сантехника" и "фарфор". Как я могу определить, что будет классифицироваться как сантехника или фарфор? т.е. какая граница позволяет мне дифференцироваться?
Я не спрашиваю, что такое фарфор или сантехника, а скорее как, учитывая команду, я могу сказать, какой это тип.
4 ответа
Как отметил blue112, разделительная линия нечеткая. Однако на самой первой странице документации есть явный список (и, как отмечает РМ ниже, одним из основных критериев является или, по крайней мере, предполагается, что это стабильность интерфейса), для которой некоторые номинально-фарфоровые команды имеют --porcelain
1 для обеспечения более стабильного и / или более машиночитаемого вывода). Вы можете использовать их список или решить, что некоторые команды имеют слишком высокий уровень, чтобы быть низким, или слишком низкий уровень, чтобы быть высоким. Например, вы можете не согласиться с этим git apply
это команда сантехника, но страница Git говорит, что это так. Или вы могли бы рассмотреть такие вещи, как git fast-import
быть чем-то, что вы бы использовали только внутри скрипта.
Приведенный ниже список просто извлечен из документации, с описаниями и дополнительными классификациями, оставленными без учета "фарфора" и "сантехники". (Подклассификации остаются видимыми в виде инверсий в алфавитном порядке сортировки. Я не создавал ссылки для каждой записи, поскольку это было бы значительно сложнее с разметкой Stackru - для этого просто требовалась простая оболочка
... pre>.)фарфор
git-add git-rebase git-cherry git-am git-reset git-count-objects git-архив git-revert git-difftool git-bisect git-rm git-fsck git-branch git-shortlog git-get-tar-commit-id git-bundle git-show git-help git-checkout git-stash git-instaweb git-cherry-pick git-status git-merge-tree git-citool git-submodule git-rerere git-clean git-tag git-rev-parse git-clone git-worktree git-show-branch git-commit gitk git-verify-commit git-description git-config git-verify-tag git-diff git-fast-export git-whatchanged git-fetch git-fast-import gitweb git-format-patch git-фильтр-ветка git-archimport git-gc git-mergetool git-cvsexportcommit git-grep git-pack-refs git-cvsimport Гит-Ги Гит-чернослив Гит-cvsserver git-init git-reflog git-imap-send git-log git-relink git-p4 git-merge git-remote git-quiltimport git-mv git-repack git-request-pull git-notes git-replace git-send-email git-pull git-annotate git-svn мерзавец мерзавецводопровод
git-apply git-for-each-ref git-receive-pack git-checkout-index git-ls-файлы git-shell git-commit-tree git-ls-remote git-upload-archive git-hash-объект git- lit-tree git-upload-pack git-index-pack git-merge-base git-check-attr git-merge-файл git-name-rev git-check-ignore git-merge-index git-pack-избыточный git- check-mailmap git-mktag git-rev-list git-check-ref-формат git-mktree git-show-index git-колонка git-pack-объекты git-шоу-ref git-учетные данные git-prune-упакованные git-unpack-file git-credential-cache git-read-tree git-var git-credential-store git-symbolic-ref git-verify-pack git-fmt-merge-msg git-unpack-objects git-демон демон git-interpret-trailers git-update-index git-fetch-pack git-mailinfo git-update-ref git-http-backend git-mailsplit дерево-git-запись-git-send-pack git-merge-one-file git-cat-file git- обновление-сервер-информация git-patch-id git-diff-файлы git-http-fetch git-sh-i18n git-diff-index git-http-push git-sh-setup git-diff-tree git-parse-remote ГИТ-stripspace1 Казалось бы, логичнее называть это
--plumbing
Но, как VonC отмечает в этом ответе на связанный вопрос, вместо этого можно рассматривать это как запрос: "Я реализую фарфор, поэтому, пожалуйста, дайте мне вывод в стиле сантехника". Недостаток этого аргумента в том, что вы, возможно, выполняете сложную сантехнику и хотите использовать простую сантехнику, чтобы сделать это: теперь фарфора не видно, и все же, ваша сложная сантехника проходит--porcelain
к простой сантехнике.
Я думаю, что нет прямой линии между командами.
Команды, которые вы используете изо дня в день, фарфоровые (подумайте о status
, diff
, commit
...), менее используемые команды, которые дают меньше форматированных выходных данных, являются верными (подумайте о diff-index
, hash-object
или же send-pack
).
Вы можете получить полный список команд git, используя git help -a
, Здесь довольно легко определить, какая команда больше относится к фарфору или сантехнике.
Глядя на руководство git send-pack
Вы можете увидеть следующую строку
Обычно вы хотите использовать вместо этого git push, который является оберткой более высокого уровня для этой команды.
Это то, что говорит вам, что это скорее сантехническая команда.
Фактическая команда, перечисляющая сантехнические команды (и другие команды, в их собственных разделах) была:
git help -av
И это меняется с Git 2.20 (Q4 2018), учитывая " git help -a
" а также " git help -av
"давать разные фрагменты информации, и, как правило," многословная "версия более дружественна для новых пользователей.
" git help -a
"по умолчанию теперь используется более подробный вывод (с помощью" --no-verbose
"Вы можете вернуться к оригиналу).
См. Коммит 26c7d06 (29 сентября 2018 г.) Нгуен Тай Нгук Дуй ( pclouds
)
(Объединено Юнио С Хамано - gitster
- в комитете 54e564e, 19 октября 2018 года)
help -a
: улучшить и сделать--verbose
дефолтКогда вы печатаете
git help
" (или просто "git
msgstr ") вас приветствует список часто используемых команд и их краткое описание, и вам предлагается их использовать"git help -a
" или же "git help -g
" Больше подробностей."
git help -av
"будет более дружелюбным и подходящим для того, что показано с помощью"git help
msgstr "поскольку он показывает список команд с описанием, а команды правильно сгруппированы."
help -av
"не показывает все"help -a
"показывает, хотя.
Добавить раздел внешних команд в "help -av
"для этого. Пока там, добавьте раздел для псевдонимов (до сих пор псевдонимы не имеют пользовательского интерфейса, просто"git config
").
Просто git help -a
(с Git 2.20+) теперь вернет:
vonc@VONC D:\git\git
> git help -a
Main Porcelain Commands
add Add file contents to the index
am Apply a series of patches from a mailbox
archive Create an archive of files from a named tree
bisect Use binary search to find the commit that introduced a bug
...
Одна из идей состоит в том, чтобы посетить страницу документации Git и посмотреть, указана ли команда, которую вы хотите использовать, в разделе Команды высокого уровня (porcelain
) или команды низкого уровня (plumbing
)