codememo

Git에서 파일 이름의 대문자화를 어떻게 변경합니까?

tipmemo 2023. 5. 13. 10:14
반응형

Git에서 파일 이름의 대문자화를 어떻게 변경합니까?

이전과 다른 대문자로 파일 이름을 바꾸려고 합니다.

git mv src/collision/b2AABB.js src/collision/B2AABB.js
fatal: destination exists, source=src/collision/b2AABB.js, destination=src/collision/B2AABB.js

보시다시피, Git은 이것에 대해 화를 냅니다.저는 그냥 오래된 평범한 것을 사용하여 이름을 바꾸려고 했습니다.mv명령도 실행하지만 Git는 이름 변경(이름 변경 또는 추적되지 않은 새 파일)을 선택하지 않습니다.

동일한 이름의 다른 대문자로 파일을 변경하려면 어떻게 해야 합니까?저는 Z (zsh) 4.3.15를 사용하여 Git 1.7.9.1을 사용하는 Mac OS X v10.7.3(Lion)에 있습니다.

Git 2.0.1(2014년 6월 25일)부터 A는 대소문자를 구분하지 않는 OS에서만 작동합니다.

David Turner()dturner-twcommit baaa37bf를 참조하십시오.

mv대/소문자를 구분하지 않는 파일 시스템에서 대/소문자를 구분하지 않고 이름을 변경할 수 있습니다.

"git mv hello.txt Hello.txt/소문자를 구분하지 ""/" "" "" "" ""를 트리거합니다.destination already exists오류. 이 두 이름은 파일 시스템의 관점에서 동일한 경로를 가리키며 사용자가 "를 지정해야 하기 때문입니다.--force인덱스와 다음 커밋에 기록된 경로의 대소문자를 수정할 때.

하여 "이사례를탐여구 "요지하않고허용하지"를요구하지 합니다.--force".

git mv hello.txt Hello.txt그냥 작동함(아니오)--force더 이상 필요하지 않음).


다른 대안은 다음과 같습니다.

git config --global core.ignorecase false

파일 이름을 직접 변경합니다. git add 및 commit.

CMD에서 작동합니다.Gitbash(윈도우즈) 세션에서 실패할 수 있습니다(Louis-Caron의 답변 참조).

jaquinocode설명에서 언급한 것처럼 로컬 리포지토리 자체에 해당 설정이 있는 경우:

git config --local core.ignorecase false

라스크의 대답을 고려하면, 당신은 그것을 하나의 명령으로 작동시킬 수 있습니다.--force:

git mv --force myfile MyFile

대소문자를 구분하지 않는 파일 시스템(예: macOS 또는 Windows)에서 많은 파일 이름의 대문자를 변경하려는 경우가 있습니다.으로 하기git mv명령은 빠르게 소모됩니다.좀 더 쉽게 하기 위해 제가 하는 일은 다음과 같습니다.

  1. 영향을 받는 모든 파일을 디렉터리 외부(예: 데스크톱)로 이동합니다.
  2. 를 .git add . -A해당 파일의 제거를 준비합니다.
  3. 바탕 화면의 모든 파일 이름을 적절한 대문자로 바꿉니다.
  4. 모든 파일을 원래 디렉터리로 다시 이동합니다.
  5. 를 .git add .Git는 파일 이름이 바뀌는지 확인해야 합니다.

이제 파일 이름 대문자를 변경했다고 커밋할 수 있습니다.

OS X 아래의 파일 이름은 대소문자를 구분하지 않습니다(기본값).이것은 Git 문제라기보다는 OS 문제입니다.파일을 제거하고 다시 읽은 경우 원하는 파일을 가져오거나 이름을 다른 이름으로 바꾼 다음 다시 이름을 변경해야 합니다.

ignorecasefalse하기 ㅠㅠ

원래 게시물이 "Git에서 파일 이름의 대문자 변경"에 관한 것이기 때문에:

프로젝트에서 파일 이름의 대문자화를 변경하려는 경우 Git에서 파일 이름을 강제로 변경할 필요가 없습니다.IMO, 차라리 IDE/편집기에서 대문자를 변경하고 이름 변경을 선택할 수 있도록 Git를 올바르게 구성해야 합니다.

기본적으로 Git 템플릿은 대소문자를 무시하도록 설정됩니다(Git 대소문자 구분 안 함).템플릿이 하려면 기본템이있확다사음다니용합을면려를 사용합니다.--get지정한 키의 값을 검색합니다.사용하다--local그리고.--global로컬 Git 저장소 구성 또는 글로벌 구성에서 구성 키 값을 선택할지 여부를 Git에 표시합니다.예를 들어 글로벌 키를 조회하려는 경우core.ignorecase가 아무것도하지 않는 에는 (으)로 를 붙여야 .sudo):

git config --global --get core.ignorecase

만약 이것이 다시 돌아온다면,true다음과 같이 설정해야 합니다.

git config --global core.ignorecase false

(글로벌을 변경하려면 적절한 권한이 있는지 확인하십시오.이제 Git 설치를 통해 자본화를 무시하지 않고 변경 사항으로 처리할 수 있습니다.

Git에 되어야 한다고 , 의 "Git", "Git"을 업데이트하세요.core.ignorecasejava.

.git 디렉터리를 연 다음 "config" 파일을 편집할 수 있습니다."[core]" set에서 "contextcase = true"를 설정하면 완료됩니다;)

작업git mv로, :macOS 서소로자, Windows 서는문 gitbash:

for f in *; do git mv "$f" "`echo $f | tr "[:upper:]" "[:lower:]"`"; done

폴더의 모든 파일을 소문자로 표시합니다.

Vonc의 답변은 전적으로 옳지만 이름 바꾸기 작업이 git for windows에서 작동하지 않을 수 있는 잠재적인 상황이 있습니다.

예를 들어 dir/mypath의 이름을 dir/myPath로 변경하려고 합니다.

git mv dir/mypath dir/myPath

그러나 보고에 실패합니다.

Rename from 'dir/mypath' to 'dir/mypath' failed. Should I try again? (y/n) 

입니다.dir/myPath와 함께dir/mypath이러한 경로가 다른 대문자로 존재한다는 것을 감지했기 때문입니다.

해결책은 중간 이동 작업을 사용하는 것입니다.

git mv dir/mypath dir/mypath_temp
git mv dir/mypath_temp dir/myPath

작업 예제:

git mv ./src/images/poster_video.PNG ./src/images/poster_video.png

Python 은 "Python 니펫은"git mv --force디렉토리의 모든 파일을 소문자로 만듭니다.들어 는 foo/bar.js를 통해 .git mv foo/Bar.js foo/bar.js --force.

원하는 대로 수정합니다.저는 그냥 공유하기로 했어요 :)

import os
import re

searchDir = 'c:/someRepo'
exclude = ['.git', 'node_modules','bin']
os.chdir(searchDir)

for root, dirs, files in os.walk(searchDir):
    dirs[:] = [d for d in dirs if d not in exclude]
    for f in files:
        if re.match(r'[A-Z]', f):
            fullPath = os.path.join(root, f)
            fullPathLower = os.path.join(root, f[0].lower() + f[1:])
            command = 'git mv --force ' + fullPath + ' ' + fullPathLower
            print(command)
            os.system(command)

소스 트리의 Windows에서 다음과 같이 변경되었습니다.

여기에 이미지 설명 입력

파일 시스템에서 파일을 제거하여 해결했습니다.

여기에 이미지 설명 입력

그런 다음 보관할 파일을 삭제하고 커밋합니다.

여기에 이미지 설명 입력

이제 모든 것이 예상대로 작동했습니다.

여기에 이미지 설명 입력

다음 답변을 기반으로 합니다.

https://stackoverflow.com/a/66121726/3850405

파일 이름을 대문자로 변경하려면 github repo로 이동하여 .e.dot =>를 누르면 온라인 편집기가 열립니다.왼쪽에 있는 소스 제어 아이콘만 사용하여 변경을 수행하고 변경 내용을 커밋합니다.

언급URL : https://stackoverflow.com/questions/10523849/how-do-you-change-the-capitalization-of-filenames-in-git

반응형