처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.07.23 53

브랜치 이름이 '-D'라면? git의 숨은 방패 --end-of-options

Hacker News 원문 보기

git에서 git checkout $branch처럼 변수를 그대로 넘길 때, 만약 그 값이 --force-D처럼 대시로 시작하면 git은 이를 옵션으로 해석해버립니다. 사용자가 만든 브랜치명, CI 파이프라인의 변수, 외부 입력이 그대로 명령줄에 들어가는 순간 '아규먼트 인젝션' 취약점이 됩니다. 흔히 쓰는 -- 구분자는 옵션과 경로(revision/path)를 나누는 용도라 상황에 따라 모호하고 완벽하지 않습니다. 그래서 등장한 것이 --end-of-options입니다. 이 플래그 뒤에 오는 모든 값은 무조건 옵션이 아닌 위치 인자로 취급됩니다. 즉 git branch --end-of-options $name처럼 쓰면 이름이 -D든 뭐든 안전하게 처리됩니다. POSIX의 --와 별개로 git·일부 GNU 도구가 지원하는 이 방식은, 스크립트나 자동화 코드에서 신뢰할 수 없는 입력을 다룰 때 반드시 챙겨야 할 보안 습관입니다. 셸 스크립트를 짜는 개발자라면 기억해둘 만한 작은 방패입니다.

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.