복잡한 Git 분기 이름으로 모든 Git 명령이 중단되었습니다.
지점을 만들려고 했습니다.master
다음 명령을 사용합니다.
git branch SSLOC-201_Implement___str__()_of_ProductSearchQuery
Git가 갑자기 반응을 멈췄을 때.탈출하지 못한 자들이()
어떻게든 책임이 있습니다.이제 Git 명령을 실행하려고 할 때마다 동일한 오류가 발생합니다.
git:176: command not found: _of_ProductSearchQuery
뒤의 번호로git
명령을 입력할 때마다 증가합니다.
무슨 일이 있었는지 설명할 수 있는 사람?어떻게 하면 정상으로 돌아갈 수 있을까요?해당 지점을 삭제하고 싶은데 어떻게 해야 하나요?
문제
무슨 일이 일어났는지 설명할 수 있는 사람이 있습니까? [...] 해당 분기를 삭제할 수 있으면 좋겠지만 Git이 작동하지 않습니다.
달리기로
git branch SSLOC-201_Implement___str__()_of_ProductSearchQuery
zsh에서 분기를 만들지 않았습니다.대신 실수로 세 개의 셸 함수를 정의했습니다.git
,branch
,그리고.SSLOC-201_Implement___str__
매개 변수를 무시하고(있는 경우) 신체가_of_ProductSearchQuery
라고 하는 내장된 zsh 명령을 호출하여 실제로 이러한 현상이 발생했는지 직접 확인할 수 있습니다.functions
여기에는 기존의 모든 셸 함수가 나열됩니다.
$ functions
SSLOC-201_Implement___str__ () {
_of_ProductSearchQuery
}
branch () {
_of_ProductSearchQuery
}
git () {
_of_ProductSearchQuery
}
불행하게도, 다른 두 개의 셸 함수는 문제가 없지만, "깃"이라고 불리는 셸 함수는 이제 진짜 명령을 그림자처럼 만듭니다!
$ which git
git () {
_of_ProductSearchQuery
}
# but the real "git" is a binary file that lives in /usr/local/bin/git (or some similar path)
따라서 나중에 오류가 발생합니다.
command not found: _of_ProductSearchQuery
Git 명령을 실행하려고 할 때마다 예를 들어,git log
,git status
등(물론, 어떤 명령도 불리지 않았다는 것을 의미합니다._of_ProductSearchQuery
존재합니다.
사이드 노트
[...] 동일한 오류가 발생합니다.
git:176: command not found: _of_ProductSearchQuery
(뒤에 숫자 포함)
git
명령을 입력할 때마다 증가)
그 숫자는 단순히 다음과 같은 값에 해당합니다.HISTCMD
가 유지되는 환경 변수
대화형 셸의 현재 기록 이벤트 번호, 즉, 원인이 된 명령의 이벤트 번호
$HISTCMD
열람할 수 있는
자세한 내용은 zsh 설명서를 참조하십시오.
해결책
어떻게 하면 정상으로 돌아갈 수 있을까요?
문제가 있는 셸 함수(및 사용자가 문제가 있는 동안 실수로 생성한 다른 두 개)를 삭제하기만 하면 됩니다.
unset -f git
unset -f branch SSLOC-201_Implement___str__
그러면 모든 것이 잘 될 것입니다.
면 어쩌지unset
그림자도?!
좋은 질문입니다!Wumpus W를 소개합니다. 아래에 있는 Wumblemy의 훌륭한 코멘트.
지점 이름 지정 팁
특수 셸 문자를 사용하지 않도록 합니다.
예, 설명에서 지적한 대로 괄호는 Git 분기 이름에서 유효한 문자입니다. 예를 들어, 이름을 적절하게 따옴표로 묶기만 하면 됩니다.
$ git branch 'foo()bar'
$ git branch
foo()bar
* master
$ git checkout 'foo()bar'
Switched to branch 'foo()bar'
그러나 명령줄 인수로 사용될 때마다 이러한 이름을 따옴표로 묶어야 하기 때문에 참조 이름의 괄호를 피할 수 있습니다.일반적으로 셸에 특별한 의미가 있는 문자는 (가능한 한) 피해야 합니다. 이와 같은 놀라움을 방지하기 위해서입니다.
단순 분기 이름 사용
어쨌든 지점 이름은 짧고 달콤하게 유지해야 합니다.다음과 같은 긴 설명
SSLOC-201_실시__str_()_of_상품검색조회
분기 이름이 아닌 커밋 메시지에 속합니다.
언급URL : https://stackoverflow.com/questions/32355540/complex-git-branch-name-broke-all-git-commands
'programing' 카테고리의 다른 글
Angular 4 토큰 새로 고침 후 가로채기 재시도 요청 (0) | 2023.05.17 |
---|---|
Xcode의 아카이빙 프로젝트가 다중 애플리케이션 번들을 잘못 생성함 (0) | 2023.05.17 |
Excel-VBA에서 SQL 데이터베이스 액세스 (0) | 2023.05.17 |
WPF의 활성 창을 참조하시겠습니까? (0) | 2023.05.17 |
특정 리비전으로 이동 (0) | 2023.05.17 |