Programing

Windows에서 파일의 대소 문자를 변경 하시겠습니까?

lottogame 2020. 5. 16. 10:04
반응형

Windows에서 파일의 대소 문자를 변경 하시겠습니까?


git-controlled codebase에는 두 개의 파일이 있는데 이름을 바꾸고 싶습니다. 그 때문에 특히, 난 그냥 파일의 경우를 변경하려면 sourceCode.java된다 SourceCode.java예를 들어. 캐치 : 나는 Windows 상자에 있고 파일 시스템은 그것들이 동일한 파일 이름이라고 생각합니다.

Windows와 Git이 해당 변경 사항을 인식하고 체크인하도록하려면 어떻게해야합니까?


그것을하는 방법에 대한 더 많은 힌트를 보려면 여기를보십시오 :

git이 변경 사항을 무시하도록 만드는 방법은 무엇입니까?

또는:

git mv -f name.java Name.java

FAT 파일 시스템을 사용하는 경우 유일한 선택은 2 단계 이름 바꾸기입니다.

  1. 이름 바꾸기 sourceCode.javaanything.you.like
  2. 이름 바꾸기 anything.you.likeSourceCode.java

우리가 Perforce를 사용하던 시절에는 정확히이 문제가 있었으며 이것이 우리가 해결할 수있는 유일한 솔루션이었습니다.


다음 단계를 통해 Windows에서 사례를 변경할 수있었습니다.

  • 추가 ignorecase = false[core].git/config;
  • 이름을 바꾸려는 파일을 프로젝트 디렉토리 밖으로 옮기십시오.
  • 삭제를 색인에 추가하십시오.
  • 모든 파일을 원래 위치로 다시 옮기고 파일 및 / 또는 디렉토리의 대소 문자를 변경하십시오.
  • 모든 "새"파일을 색인에 추가하십시오.
  • ignorecase = false첫 번째 단계에서 추가를 제거하십시오 .

이 방법으로 이름 변경이 포함 된 단일 커밋이 있으며 전체 디렉토리와 같이 쉽게 변경할 수 있습니다.


조심해. 이렇게하면 병합 할 수없는 변경 사항이 발생할 수 있습니다. Git은 이전 대문자 이름과 새로운 소문자 이름이 같은 파일인지 아닌지를 결정할 수 없기 때문에 Windows에서 병합 할 때 혼란스러워합니다 (Git은 아니지만 파일 시스템을 위해). 병합하려면 병합하기 전에 파일을 삭제하는 것과 같은 수동 해결 방법을 수행해야합니다.

이름은 같지만 대소 문자가 다른 파일의 Git rebase 문제 참조

이 문제가 프로젝트에 틀에 얽매이지 않은 이름의 파일을 가지고있는 것보다 더 나쁘지 않은지 확실하지 않지만, 많은 분기를 가진 많은 사용자가 결국 병합되어야 하는지를 아는 것은 가치가 있습니다.


NTFS (또는 FAT)에서는 단일 git mv명령으로 문제를 해결할 수 없습니다. 이 질문은 작동하는 기술을 보여줍니다 : git mv and only case case of directory

참고 URL : https://stackoverflow.com/questions/1793735/change-case-of-a-file-on-windows

반응형