GIT double dash의 의미: git checkout -- filename

Git에서 특정 파일의 변경을 취소할 때 아래와 같은 커맨드를 실행한다.
$ git checkout -- path/to/file.txt
문법을 외워서 사용하고 있는데, 더블대시가 왜 나오며, 어떤 식으로 변경이 취소되는 걸까?
더블 대시는 배시에서 커맨드 옵션의 끝을 의미한다.
예를 들어, grep 명령으로 옵션 -v 가 아닌 문자열 -v 를 검색하고 싶다면,
아래와 같이 -- 로 옵션이 종료되었음을 명시할 수 있다.
$ grep -- -v file
깃 커맨드도 마찬가지로 -- 는 옵션의 끝을 의미한다.
$ git checkout -- path/to/file.txt
git chekcout 의 usage 를 보면 아래와 같이 돼있다.
git checkout [
위 명령에서는 [] [] 옵션의 입력이 모두 끝났음을 의미한다.
브랜치 옵션을 생략함으로써, 암묵적으로 현재 브랜치의 path/to/file.txt 파일을 다시 체크아웃 받겠다는 의미이다.
즉, 수정 사항을 취소하는 것과 동일하다.
정리
만약, index.js파일을 실수로 지웠을 때 다음과 같은 명령어를 실행하면,
$ git checkout -- index.js
현재 브랜치의 index.js파일을 다시 체크아웃 받겠다는 의미로, 수정 사항을 취소하는 것과 동일한 의미다.