Programing

Git 리포지토리에서 디렉토리의 이름을 올바르게 바꾸는 방법은 무엇입니까?

lottogame 2020. 2. 10. 22:02
반응형

Git 리포지토리에서 디렉토리의 이름을 올바르게 바꾸는 방법은 무엇입니까?


나는 원하는 이름으로 새 디렉토리로 이름이 변경 될 디렉토리를 복사하는 작업을해야한다고 생각 이전 디렉토리를 삭제 하고 git add, git commit그리고 push모든 것을. 그러나 이것이 최선의 방법입니까?


기본 이름 변경 (또는 이동) :

git mv <old name> <new name>

대소 문자 구분 이름 바꾸기 (예 : 에서 casesensitiveCaseSensitive- 당신은 두 단계를 사용해야합니다 :

git mv casesensitive tmp
git mv tmp CaseSensitive

( Git의 대소 문자 구분에 대한 추가 정보… )

커밋과 푸시는 git repo에서 디렉토리의 이름을 바꾸는 가장 간단한 방법입니다.


이 오류가 표시되면 치명적 : 'foldername'이름 바꾸기 실패 : 잘못된 인수

이 시도:

git mv foldername tempname && git mv tempname folderName


1. 폴더 이름을 oldfolder에서 newfolder로 변경하십시오.

git mv oldfolder newfolder

2. newfolder이 저장소에 이미 및 당신이 그것을 무시하고 사용하려는 경우 : -

git mv -f oldfolder newfolder

git mv로 이름을 바꾼 후 인덱스에 변경 사항을 추가하고 커밋하는 것을 잊지 마십시오.

대소 문자를 구분하지 않는 파일 시스템에서 foldername을 folderName으로 이름 바꾸기

일반적인 mv 명령 (git mv 아님)을 사용한 간단한 이름 바꾸기는 git의 파일 변경으로 인식되지 않습니다. 다음 줄과 같이 'git mv'명령으로 시도하면

git mv foldername folderName

대소 문자를 구분하지 않는 파일 시스템을 사용하는 경우 (예 : Mac의 경우) 대소 문자를 구분하도록 구성하지 않은 경우 다음과 같은 오류 메시지가 나타납니다.

치명적 : 'foldername'이름 바꾸기 실패 : 잘못된 인수

그리고 그것을 작동시키기 위해 당신이 할 수있는 일이 있습니다 :-

git mv foldername tempname && git mv tempname folderName

이렇게하면 처음에 폴더 이름을 완전히 다른 폴더 이름으로 바꾸어 이름 바꾸기 프로세스를 분리합니다. 다른 폴더 이름으로 이름을 바꾼 후 폴더 이름을 새 folderName으로 바꿀 수 있습니다. 그 'git mv 's 후에 다시 변경 사항을 추가하고 커밋하는 것을 잊지 마십시오. 이것은 아마도 아름다운 기술은 아니지만 완벽하게 작동합니다. 파일 시스템은 여전히 ​​소문자 변경을 인식하지 못하지만 git은 새로운 폴더 이름으로 이름을 바꿨 기 때문에 git은 이름을 바 꾸었습니다.


파일 시스템을 사용하여 디렉토리 이름을 바꿀 수 있습니다. 그럼 당신은 할 수 git rm <old directory>git add <new directory>( 도움말 페이지 ). 그러면 커밋하고 푸시 할 수 있습니다.

Git은 내용이 동일하고 단지 이름 바꾸기 작업임을 감지하고 기록에 이름 바꾸기 항목으로 나타납니다. 커밋하기 전에이 경우인지 확인할 수 있습니다.git status


웹 응용 프로그램에서는 할 수 없다고 생각하지만 Git Client의 모든 폴더의 이름을 바꿀 수 있습니다. 파일을 새로 이름이 바뀐 폴더로 옮기고 원격 저장소로 푸시하는 것보다 낫습니다.

나는 매우 비슷한 문제 가 있었다 : 대문자에서 소문자 (Abc-> abc와 같은)로 다른 폴더의 이름을 바꾸어야했고, 모든 폴더의 이름을 더미 이름 ( 'abc___'과 같은)으로 바꾸었고 원격 저장소에 커밋 한 것보다 모든 폴더의 이름을 abc와 같은 소문자로 원래 이름으로 바꿨습니다.


두 단계로 해결했습니다. mv 명령을 사용하여 폴더의 이름을 바꾸려면 권한이 필요합니다. 권한이 없으면 다음 단계를 수행하십시오. 대소 문자 구분을 대소 문자 구분으로 바꾸려고한다고 가정하십시오.

1 단계 : 폴더 이름을 대소 문자를 구분하여 탐색기에서 다른 이름으로 바꿉니다. 예를 들어, folder1에 대해 대소 문자 구분 이름 바꾸기가이 변경을 커밋합니다.

2 단계 : 새로 이름이 지정된이 폴더 (폴더 1)의 이름을 대소 문자 구분 이름 (Casesensitive)으로 바꿉니다. folder1의 이름을 대소 문자를 구분하십시오. 이 변경 사항을 커밋하십시오.


git rm -rf --cached path/to/your/directories

그런 다음 다시 추가하고 커밋하십시오.


단순히 폴더 이름을 바꾸십시오. git은 "content-tracker"이므로 SHA1 해시는 동일하고 git은 이름을 바꾼다는 것을 알고 있습니다. 변경되는 유일한 것은 트리 개체입니다.

rm <directory>
git add .
git commit

참고 URL : https://stackoverflow.com/questions/11183788/in-a-git-repository-how-to-properly-rename-a-directory



반응형