Позвольте мне объяснить некоторые варианты использования проверки с файлом, папкой и ветвями, чтобы это могло быть полезно для понимания.
Допустим, у нас есть папка с именем, dev
а index.html
также все отслеживается, и рабочий каталог чист.
Если я случайно изменю имя файла index.html
и хочу отменить это действие, я просто воспользуюсь git checkout index.html
этим, он восстановит это состояние файла из текущей выбранной ветки репозитория.
Теперь, если я внес изменения в dev
папку и хочу ее восстановить. Я могу использовать, git checkout dev
но что, если уже есть указанная ветка, dev
вместо того, чтобы проверять эту папку, она откроет эту ветку. Чтобы избежать этого, я бы предпочел git checkout -- dev
.
Теперь здесь пустое двойное тире обозначает текущую ветку и запрашивает у git папку dev
из текущей выбранной ветки.
Точно так же, если я это сделаю, git checkout alpha dev
он вытащит папку dev из альфа-ветки.
Это ответ на ваш первый вопрос: «git checkout действительно означает».