git cat-file: "--" 이스케이프 매개변수는 언제 도입되나요?

git cat-file: "--" 이스케이프 매개변수는 언제 도입되나요?

Git 버전 1.8.3.1(CentOS 7에서 제공)에서는 이 명령이 작동하지 않는 것 같습니다.

git cat-file -t -- "5378198ea7a83f5fa9bb3ba17f51be3a6ffbecc1:README.md"

(분명히 해당 개정판에 대해 올바른 git 해시와 기존 파일을 지정하십시오)

이것은 표준 오류입니다.

usage: git cat-file (-t|-s|-e|-p|<type>|--textconv) <object>
   or: git cat-file (--batch|--batch-check) < <list_of_objects>

<type> can be one of: blob, tree, commit, tag
    -t                    show object type
    -s                    show object size
    -e                    exit with zero when there's no error
    -p                    pretty-print object's content
    --textconv            for blob objects, run textconv on object's content
    --batch               show info and content of objects fed from the standard input
    --batch-check         show info about objects fed from the standard input

나에게 문제는 " --" 이스케이프 매개변수가 연속 매개변수가 아닌 해당 유형의 이스케이프로 해석된다는 것입니다. 실제로 이것은 나에게 효과적입니다.

git cat-file -t "5378198ea7a83f5fa9bb3ba17f51be3a6ffbecc1:README.md"

이는 존재하며 0다음과 같은 결과를 갖습니다.

blob

간단히 말해서.

질문

--" " 매개변수가 git에 도입된 시기를 알아내는 방법을 어떻게 제안하시나요 ?

관련된 문서:

답변1

git cat-file예전에는 인수 개수를 엄격하게 확인했는데, 이는 --사용할 수 없음을 의미했습니다. 옵션이 구문 분석되기 전에 확인이 이루어지므로 인수가 유효하지 않음을 나타내지 않고 즉시 사용법 출력을 얻을 수 있습니다.

이것은2015년 5월 삭제됨;이 변경 사항을 포함하는 첫 번째 버전은 2.5.0입니다.

이를 알아보기 위해 비교했습니다.cat-file.c버전 1.8.3.1부터 현재 상태까지, 매개변수 버전을 확인한 후 이를 제거한 커밋을 찾았습니다.

관련 정보