Deixe-me explicar alguns casos de uso de checkout com arquivo, pasta e branches para que possa ser útil no entendimento.
Digamos que temos uma pasta chamada dev
e index.html
também Tudo é rastreado e o diretório de trabalho está limpo.
Se eu acidentalmente mudar o nome do arquivo index.html
e quiser desfazê-lo, simplesmente irei usá- git checkout index.html
lo para recuperar o estado do arquivo do repositório atualmente selecionado.
Agora se eu fiz alguma alteração na dev
pasta e quero recuperar isso. Eu posso usar, git checkout dev
mas e se já houver um branch nomeado em dev
vez de fazer check-out dessa pasta, ele puxará para baixo esse branch. Para evitar isso, prefiro fazer git checkout -- dev
.
Agora aqui o traço duplo vazio representa o branch atual e pede ao git a pasta dev
do branch atualmente selecionado.
Da mesma forma, se eu fizer git checkout alpha dev
isso, puxarei a pasta dev da ramificação alfa.
Esta resposta é para sua primeira pergunta 'git checkout realmente significa'.