A partir da documentação do Git :
git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>…
O --
é usado para separar os caminhos das opções. Você precisa disso, pois algumas das opções possuem parâmetros opcionais, portanto, se você não incluiu o --
, o comando poderá tentar interpretar um caminho como um parâmetro de opção. Como você pode ver nos documentos, o --
é opcional quando não é realmente necessário separar as opções dos caminhos.