대소 문자 만 다른 git 파일의 이름을 어떻게 바꾸나요?


14

내 자식 (Xcode) 프로젝트에서 부적절한 경우 파일 이름을 커밋했습니다. 이제 이름을 바꾸려고했지만 커밋하면 다음과 같은 결과가 나타납니다.

치명적 : 파일 별칭 'MyProject / MyFile.h'를 추가하지 않습니다 ( 'MyProject / MyFilE.h'는 이미 색인에 있습니다)

git이 HFS +와 같이 대소 문자를 구분하지 않고 대소 문자를 구분하지 않는 파일 시스템에서 실행되는 데 사용되지 않았기 때문입니다. 그러나 나는 어떻게 그것을 극복합니까?

두 파일의 이름을 다른 것으로 바꾸려고 시도하고 커밋 한 다음 원하는 이름으로 다시 이름을 바꾸었지만 여전히 동일한 오류 메시지와 함께 실패합니다.

답변:


21

stackoverflow 에서 묻고 대답 한 것처럼 디스크 이미지 파일에 새 파일 시스템을 만들지 않는 더 쉬운 방법이 있습니다.

기존 파일을 한쪽으로 이동하고 커밋 한 다음 유지 관리 및 커밋하려는 사례를 사용하여 다시 이동하십시오. 끝난.

예:

mv foo foo2
git add -A
git commit -m "renaming"
mv foo2 FOO
git add -A
git commit --amend -m "renamed foo to FOO"

링크 부패를 피하기 위해 링크 뒤에있는 답변의 관련 부분을 답변 본문에 복사하도록 요청합니다.
Ian C.

감사합니다 @ ian-c. 이 규칙이 stackexchange 제품군 내부의 링크에는 적용되지 않기를 바랐습니다.
mspasov

1
네, 당신이 말하는 것을 얻었지만 일관성은 좋습니다.
Ian C.

기묘한. 나는 이것을 시도했지만 긍정적 이었지만 오늘은 효과가 있습니다. 감사.
Ken

2

대소 문자를 구분하지 않는 파일 시스템 에서이 문제를 직접 해결하는 방법을 아직 찾지 못했습니다. 대소 문자를 구분하는 파일 시스템이 필요합니다.

운 좋게도 Mac OS X에는 우수한 가상 디스크 마운트 지원 ​​기능이있어 컴퓨터에서 (일시적인) 대소 문자 구분 파일 시스템을 쉽고 빠르게 얻을 수 있습니다.

디스크 유틸리티를 열고 새 이미지를 만든 다음 "포맷"필드를 대소 문자를 구분하는 "Mac OS Extended"버전 중 하나로 설정하십시오. 또한 저장소에 충분히 큰지 확인하십시오.

새 디스크를 마운트하고 git 저장소를 확인하고 올바른 이름의 파일에 올바른 내용이 있는지 확인한 후 다른 디스크를 삭제하십시오. 변경 사항을 커밋하고 푸시 한 다음 디스크 이미지를 마운트 해제하고 삭제할 수 있습니다.

복제 할 원격 서버가없는 경우 (즉, 하드 드라이브에서 로컬로 git repo를 실행하는 경우) 하드 드라이브의 다른 git 저장소에서 직접 복제 할 수 있습니다.


1
그것은 엄청나게 노동 집약적입니다. 디스크 이미지 파일에서 새 파일 시스템을 스핀 업하지 않고도이 작업을 수행 할 수 있습니다.
Ian C.

1

1 단계 : 문자 이름이 아닌 다른 이름으로 파일 이름을 바꾸 십시오 . 현재 이름과 이름에서 다른 이름을 선택하십시오.

2 단계 : 이 파일을 GUI (Xcode) 또는 CLI (Terminal)로 커밋

3 단계 : 이름을 첫 번째 장소에 이름을 원하는대로 파일을. 이제는 이전 이름의 경우보다 더 많은 차이점이 있습니다.

4 단계 : 이름이 바뀐 파일을 다시 커밋 합니다.

마술은 필요 없습니다. GUI 또는 CLI로 커밋하도록 선택할 수 있습니다.


0

나는 sourcetree를 사용합니다. CLI를 사용하지 않으면이 작업을 쉽게 수행 할 수 있습니다. 파일 이름을 다른 이름으로 바꾸십시오 (예 : Index.php를 Index_old.php로).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.