Что значит "-" в "git checkout - files"? - PullRequest
28 голосов
/ 28 марта 2010

Это «конец опции», которую я привык видеть в bash (и если да, почему мы ее используем) или это нотация Git для индекса или HEAD?

1 Ответ

40 голосов
/ 28 марта 2010

-- отделяет пути от других параметров. Из документации :

git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>... 

Если бы это обозначение не существовало, следующие две команды были бы неоднозначными:

git checkout <tree-ish> <path1> <path2>
git checkout <path1> <path2> <path3>

С помощью обозначения -- ясно, что означает:

git checkout <tree-ish> -- <path1> <path2>
git checkout -- <path1> <path2> <path3>

Документация, на которую я ссылался выше, включает пример того, когда вам это может понадобиться:

$ git checkout hello.c

Если у вас есть неудачная ветка с именем hello.c, этот шаг будет путать с инструкцией по переключению на эту ветку. Вместо этого вы должны написать:

$ git checkout - hello.c

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