programing

디렉토리의 대문자를 변경했는데 Git이 디렉토리를 인식하지 못하는 것 같습니다.

linuxpc 2023. 5. 1. 20:01
반응형

디렉토리의 대문자를 변경했는데 Git이 디렉토리를 인식하지 못하는 것 같습니다.

저는 Git 버전 관리 하에 있는 OS X Lion에 대한 프로젝트를 개발 중입니다.이러한 소문자 디렉토리를 가지고 있다가 나중에 대문자로 표시했습니다(예: 이메일 주소 = > 이메일 주소). 하지만 Git는 변경 사항을 인식하지 못하는 것 같습니다.실행할 때 디렉터리가 소문자로 표시됩니다.git ls-files및 기타 명령.

이것이 해롭지 않나요, 아니면 제가 Git이 이 변화를 이해하도록 하기 위해 다른 것을 해야 하나요?

당신은 Git에게 사건을 처리하라고 말할 수 있습니다.

git config core.ignorecase false

대소문자를 구분하지 않는(대소문자를 구분하지 않는) HFS+를 사용하고 있을 것입니다.저는 보통 다음과 같이 해결합니다.

$ git mv somename tmpname
$ git mv tmpname SomeName

대소문자를 구분하여 Mac에서 mv를 얻는 방법

Mac OS X는 사용자에게 도움이 되는 사례 보존 및 사례 불감증 기능을 구현하기 때문에 이러한 현상이 발생합니다.

다른 답변에서 이중 이름 바꾸기 제안이 효과적이지만 모범 사례 결과를 위해 '--force'를 사용할 것을 권장합니다.

$ git mv --force somename SomeName


참고: force 옵션을 사용하지 않고 시도하면 git이 다음과 같이 바핑됩니다.

$ git mv somename SomeName
$ fatal: destination exists, source=somename, destination=SomeName

위의 예에서는 git 명령이 실패하고 파일 시스템 또는 git 인덱스에서 파일이 변경되지 않습니다.

.gitconfig 파일에서 gitconfig 옵션 core.ignorecase를 false로 변경합니다.

다음 단계는 문제를 해결하는 데 도움이 되었습니다.

  1. 폴더 이름을 다음으로 변경합니다.temp:

    mv Folder temp                  // It will rename your Folder to temp
    
  2. 준비 및 커밋:

    git add .
    git commit -m "Temp"
    
  3. 이름 바꾸기temp원하는 폴더:

    mv temp folder        // It will rename temp folder to the name of your choice(folder)
    git add .
    git commit -m "Folder Fixed"
    

완료 - 이제 누를 수 있습니다.

그 이유는 리눅스 기반 OS 또는 macOS가 파일/폴더 이름에 대소문자를 구분하여 무시하기 때문입니다.우리는 아래 단계로 이 문제를 해결해야 합니다.

For Exp, you want to change folder name from Base to base
1. mv Base base2
2. git add . && git commit -m "Fix folder name problem (wip)"
3. mv base2 base
4. git add . && git commit -m "Fixed folder name problem"

네가 한다면.git mv AAA aaa또는git mv -f AAA aaa그것은 일이 되지 않을 것이고 당신은 오류가 있을 것입니다.fatal: renaming 'AAA' failed: Invalid argument.

왜냐면AAA그리고.aaa대/소문자를 구분하지 않는 파일 시스템에 동일한 폴더/파일이 있는지 여부, 이동AAA로.aaa평균 이동AAA~하듯이aaa/AAA.

그래서 당신은 해야 합니다.

git mv AAA aaa.1
git mv aaa.1 aaa

저는 그것이 당신에게 도움이 되기를 바랍니다.

이 중 어느 것도 도움이 되지 않았습니다. 여전히 변경 사항을 저장하라는 지시를 받았습니다. 왜냐하면 제 상황은 로컬 폴더는 대문자로 표시되었지만 원격 폴더는 대문자로 표시되지 않았고, 분기는 뒤에 있었고 폴더 구조의 파일 대문자화 차이로 인해 더 이상 풀 수 없었기 때문입니다.

이 문제를 해결할 수 있는 유일한 방법은 로컬 지점을 삭제하고 원격으로 체크아웃하는 것이었습니다.

GIT 명령을 사용하지 않고 수동으로 이 작업을 수행할 수도 있습니다. 내부.git폴더, 원하는 이름의 폴더를 삭제하십시오.SomeName 폴더 합니다.somenameSomeName자세한 내용은 에서: 폴더 이름을 대문자로 설정하고 Git을 소문자로 변환하는 방법

언급URL : https://stackoverflow.com/questions/6899582/i-change-the-capitalization-of-a-directory-and-git-doesnt-seem-to-pick-up-on-it

반응형