programing

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

golfzon 2023. 5. 9. 23:23
반응형

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

Git 제어 코드베이스에는 이름을 바꾸고 싶은 파일이 몇 개 있습니다.구체적으로, 나는 단지 파일의 케이스를 바꾸고 싶다, 그래서.sourceCode.java된다SourceCode.java,예를들면.문제점: Windows 박스에 있는데 파일 시스템이 동일한 파일 이름이라고 생각합니다.

Windows 및 Git에서 변경 사항을 인식하고 체크인하려면 어떻게 해야 합니까?파일 이름 변경은 무시할 수 없고 git에 커밋해야 합니다.

파일 이름을 변경하려면 표준을 사용합니다.git mv지휘권Windows(윈도우)에서는 변경 사항이 있는 파일만 동일한 경우로 처리하므로 다음을(를) 통과해야 합니다.-f강제로 이름을 변경하는 옵션:

git mv -f name.java Name.java

대신 대소문자 변경을 무시하려면 대소문자 변경을 무시하는 방법을 확인하십시오.

FAT 파일 시스템에 있는 경우 두 단계의 이름 변경을 수행하는 것이 유일한 방법입니다.

  1. 이름 바꾸기sourceCode.java로.anything.you.like
  2. 이름 바꾸기anything.you.like로.SourceCode.java

Perforce를 사용하던 시절에는 정확히 이 문제가 있었고 이것이 우리가 생각해 낼 수 있는 유일한 해결책이었습니다.

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

  • 더하다ignorecase = false로.[core].git/config;
  • 이름을 변경할 파일을 프로젝트 디렉토리 밖으로 이동합니다.
  • 삭제 내용을 인덱스에 추가합니다.
  • 모든 파일을 원래 위치로 다시 이동하고 파일 및/또는 디렉토리의 대소문자를 변경합니다.
  • 모든 "새" 파일을 인덱스에 추가합니다.
  • 제거한다.ignorecase = false첫 번째 단계에서 추가되었습니다.

이렇게 하면 이름 변경이 포함된 단일 커밋을 사용할 수 있으며 전체 디렉토리와 같이 쉽게 변경할 수 있습니다.

제 생각에는 한 가지 간단한 방법이 빠져 있습니다.단일 파일, 특정 디렉터리 또는 전체 리포지토리에 대해 이 작업을 수행할 수 있습니다.이전에 원하는 방식으로 파일 이름을 바꾸고 다음 명령을 실행합니다.

git rm --cached <file name or directory>
git add <file name or directory>

하위 디렉터리에도 영향을 미치려면 다음을 사용해야 합니다.-r플래그:

git rm -r --cached <directory>
git add <directory>

조심하세요.이렇게 하면 병합이 불가능한 변경사항이 발생할 수 있습니다.Git는 Windows에서 병합할 때 이전 대문자 이름과 새 소문자 이름이 동일한 파일인지 여부를 결정할 수 없기 때문에 혼동됩니다(Git의 경우는 그렇지 않지만 파일 시스템의 경우).병합하려면 병합하기 전에 파일 삭제와 같은 수동 해결 방법을 수행해야 합니다.

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

이 문제가 당신의 프로젝트에 항상 기존에 없던 이름의 파일이 있는 것보다 더 나쁜 것인지는 잘 모르겠지만, 많은 분기를 가진 사용자들이 결국 모두 병합되어야 하는지에 대해서는 알 가치가 있습니다.

NTFS FAT를 사용할 경우 단일 NTFS(또는 FAT)를 사용할 수 .git mv명령을 사용해도 문제가 해결되지 않습니다.이 질문은 작동하는 기술을 보여줍니다. gitmv디렉토리의 대소문자만 변경합니다.

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

반응형