Git 버전 제어를 받고있는 OS X Lion에서 프로젝트를 개발 중입니다. 나는이 소문자 디렉토리를 가지고 나중에 대문자를 사용했지만 (예 : emailaddresses => EmailAddresses) Git은 변경 사항을 인식하지 못하는 것 같습니다. 여전히 내가 git ls-files다른 명령을 실행할 때 디렉토리가 소문자라고 생각 합니다.
이것이 무해한가요, 아니면 Git이이 변화를 받아들이도록 다른 조치를 취해야합니까?
Git 버전 제어를 받고있는 OS X Lion에서 프로젝트를 개발 중입니다. 나는이 소문자 디렉토리를 가지고 나중에 대문자를 사용했지만 (예 : emailaddresses => EmailAddresses) Git은 변경 사항을 인식하지 못하는 것 같습니다. 여전히 내가 git ls-files다른 명령을 실행할 때 디렉토리가 소문자라고 생각 합니다.
이것이 무해한가요, 아니면 Git이이 변화를 받아들이도록 다른 조치를 취해야합니까?
답변:
대소 문자를 구분하지 않지만 HFS +를 사용하는 경우가 있습니다. 나는 보통 다음과 같이이 일을한다 :
$ git mv somename tmpname
$ git mv tmpname SomeName
git push origin master. git이 원격 업데이트를 거부하면 더미 파일 (예 :)을 추가 touch stam하고 푸시 해야 할 수도 있습니다 . 이후에 스템을 삭제 한 후 다시 누릅니다.
git에게 다음을 실행하여 사례를 고려하도록 지시 할 수 있습니다
git config core.ignorecase false
이는 Mac OS X이 사용자를 돕기 위해 대소 문자 보존 및 대소 문자 구분 기능을 구현하기 때문에 발생합니다.
다른 답변의 이중 이름 바꾸기 제안이 효과가 있지만 모범 사례 결과를 얻으려면 '--force'를 사용하는 것이 좋습니다.
$ git mv --force somename SomeName
참고 : 강제 옵션을 사용하지 않으면 git이 다음과 같이 바프합니다.
$ git mv somename SomeName
$ fatal: destination exists, source=somename, destination=SomeName
위의 예에서 git 명령은 실패하고 파일 시스템이나 git의 색인에서 파일이 변경되지 않습니다.
fatal: not under version control.
git명령은 GIT 리포지토리가있는 디렉토리에서만 작동합니다.
.gitconfig 파일에서 git config 옵션 core.ignorecase를 false로 변경하십시오.
git config core.ignorecase false
다음 단계는 문제 해결에 도움이되었습니다.
폴더 이름을 다음으로 변경하십시오 temp.
mv Folder temp // It will rename your Folder to temp
준비 및 커밋 :
git add .
git commit -m "Temp"
temp폴더를 원하는 이름으로 변경 하십시오.
mv temp folder // It will rename temp folder to the name of your choice(folder)
git add .
git commit -m "Folder Fixed"
완료-이제 푸시 할 수 있습니다.
그 이유는 LINUX 기반 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"
이 솔루션들 중 어느 것도 나를 위해 일하지 않았습니다. SourceTree는 항상 내가 원하는 것과 다른 사례로 분기를 만들었습니다. 그래서 내가 해결 한 방법은 다음과 같습니다.
1-파인더에서 자식 파일을보십시오. 터미널에서 이것을 입력하면됩니다 :
- `defaults write com.apple.finder AppleShowAllFiles TRUE`
- `killall Finder`
2-파인더를 다시 시작하고 프로젝트 디렉토리로 이동하십시오.
3-이제 폴더 이름을 변경하십시오. 기능에서 기능으로 말합니다. 그리고 당신은 간다.
GIT 명령을 사용하지 않고 수동으로이 작업을 수행 할 수도 있습니다. .git폴더 내에서 원하는 이름의 폴더를 삭제하십시오 (예 :) SomeName. 그리고 폴더의 이름을 변경 somename하는 방법에 대해 SomeName. 자세한 내용은 폴더 이름을 대문자로 설정하고 git을 소문자로 변환하는 방법
나는 같은 문제가 있었고 아래 해결책을 사용했다. 나는 이것을 배치, 디렉토리 및 파일 이름 바꾸기 등에 사용합니다.
git rm -r --cached .
git add --all .
git commit -a -m "Versioning updated directory/file names"
git push origin master