Git: 더블 대시(--)의 의미

발생일: 2015.11.06

키워드: git checkout, git double dash, --, git dash dash, 깃 더블 대시, 대시 대시, bash, command flags

문제:

깃에서 특정 파일의 변경을 취소할 때 아래와 같은 커맨드를 실행한다.

git checkout -- path/to/file.txt

그러고보니 아무 생각 없이 습관적으로 사용하고 있었는데, 더블 대시가 의미하는 게 뭘까?


해결책:

기본적으로 더블 대시는 배시에서 커맨드 옵션의 끝을 의미하는 용도로 쓰인다.

예를 들어, grep 명령으로 옵션 -v 가 아닌 문자열 -v 를 검색하고 싶다면,
아래와 같이 `--` 로 옵션이 종료되었음을 명시할 수 있다.

$ grep -- -v file


문제에서 예로 들었던 깃 커맨드도 마찬가지로 -- 는 옵션의 끝을 의미한다.

$ git checkout -- path/to/file.txt


git chekcout 의 usage 를 보면 아래와 같이 되어 있는데,

usage: git checkout [<options>] <branch>
   or: git checkout [<options>] [<branch>] -- <file>...

위 명령에서는 [<options>] [<branch>] 옵션의 입력이 모두 끝났음을 의미한다.


$ git checkout -- path/to/file.txt

위 명령은, 브랜치 옵션을 생략함으로써, 암묵적으로 현재 브랜치의 path/to/file.txt 파일을 다시 체크아웃 받겠다는 의미이다.
즉, 수정 사항을 취소하는 것과 동일하다.



참고:

카테고리

분류 전체보기 (710)
About me. (6)
Daylogs (675)
영어공부 (0)
My works - 추억 (29)
비공개 (0)