티스토리 뷰
발생일: 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 파일을 다시 체크아웃 받겠다는 의미이다.
즉, 수정 사항을 취소하는 것과 동일하다.
참고:
반응형
댓글
공지사항