Git 저장소에서 디렉토리의 이름을 올바르게 변경하는 방법은 무엇입니까?
이름을 바꿀 디렉토리를 원하는 이름을 가진 새 디렉토리로 복사하고, 이전 디렉토리를 삭제하는 것이 효과가 있어야 한다고 생각합니다.git add,git commit그리고.push방법일까요?하지만 이게 최선의 방법일까요?
기본 이름 바꾸기(또는 이동):
git mv <old name> <new name>
바꾸기( "/" " " " " - "):casesensitiveCaseSensitive—두 단계를 사용해야 합니다.
git mv casesensitive tmp
git mv tmp CaseSensitive
(Git의 대소문자 구분에 대해 자세히 알아보기...)
…commit and push 방식으로 이동하는 것이 Git repo에서 디렉터리 이름을 변경하는 가장 간단한 방법입니다.
다음 오류가 발생하는 경우: foldername' 이름을 바꾸지 못했습니다.잘못된 인수
사용해 보십시오.
*nixOS
git mv foldername tempname && git mv tempname folderName
WinOS
git config core.ignorecase false; git mv foldername tempname; git mv tempname folderName
폴더 이름을 이전 폴더에서 새 폴더로 변경
git mv oldfolder newfolder
새 폴더가 이미 리포지토리에 있는 경우 이 폴더를 재정의하고 다음을 사용합니다. 힘.
git mv -f oldfolder newfolder
인덱스에 변경 사항을 추가하고 gitmv로 이름을 바꾼 후 커밋하는 것을 잊지 마십시오.
대소문자를 구분하지 않는 파일 시스템의 폴더 이름을 folderName으로 변경
일반 mv 명령(git mv 아님)으로 이름을 변경하는 것은 git에서 파일 변경으로 인식되지 않습니다.다음 줄과 같이 'git mv' 명령어로 해보면,
git mv foldername folderName
Mac에서 대/소문자를 구분하지 않는 파일 시스템을 사용하고 있는데 대/소문자를 구분하도록 구성하지 않은 경우 다음과 같은 오류 메시지가 표시됩니다.
fatal: 'foldername' 이름을 바꾸지 못했습니다.잘못된 인수
그리고 이것을 작동시키기 위해 당신이 할 수 있는 것은 다음과 같습니다.
git mv foldername tempname && git mv tempname folderName
이렇게 하면 처음에 폴더 이름을 완전히 다른 폴더 이름으로 변경하여 이름 변경 프로세스가 분할됩니다.폴더 이름을 다른 폴더 이름으로 바꾼 후에 폴더 이름을 새 folderName으로 변경할 수 있습니다.이러한 'git mv' 이후에도 변경 사항을 추가하고 커밋하는 것을 잊지 마십시오.이것은 아마도 아름다운 기술은 아닐지라도, 완벽하게 잘 작동합니다.파일 시스템은 여전히 문자 케이스의 변경을 인식하지 못하지만, 새 폴더 이름으로 이름을 바꾸기 때문에 Git이 인식합니다. 우리가 원했던 것은 그것뿐입니다:)
많은 정답들이 있지만, 제가 역사가 있는 폴더 이름을 복사하고 붙여넣기 위해 여기에 착륙했을 때, 저는 이것을 발견했습니다.
git mv <old name> <new name>
이전 폴더(클라이언트)를 새 폴더 내에 중첩되도록 이동합니다.
하는 동안에
git mv <old name>/ <new name>
('/' 참고)'는 중첩된 콘텐츠를 이전 폴더에서 새 폴더로 이동합니다.
두 명령 모두 중첩된 파일의 기록을 따라 복사하지 않았습니다.결국 각 중첩 폴더의 이름을 개별적으로 변경했습니다. ✔
git mv <old name>/<nest-folder> <new name>/<nest-folder>
파일 시스템을 사용하여 디렉토리 이름을 변경할 수 있습니다.그러면 할 수 있습니다.git rm <old directory>그리고.git add <new directory>(도움말 페이지).그런 다음 커밋하고 푸시할 수 있습니다.
Git는 내용이 동일하고 이름 변경 작업일 뿐임을 감지하고 기록에 이름 변경 항목으로 표시됩니다.다음을 사용하여 커밋하기 전에 이 경우를 확인할 수 있습니다.git status
웹 응용 프로그램에서는 할 수 없다고 생각하지만 Git Client의 모든 폴더 이름을 바꿀 수 있습니다. Git Client는 원격 저장소에 커밋하고 푸시하는 것보다 이름이 바뀐 새 폴더로 파일을 이동합니다.
저도 비슷한 문제가 있었습니다.여러 폴더의 이름을 대문자에서 소문자(Abc -> abc 등)로 변경해야 했습니다. 모든 폴더의 이름을 더미 이름('abc__' 등)으로 변경하고 원격 저장소에 커밋한 후 모든 폴더의 이름을 소문자(abc 등)로 변경했습니다. 그리고 나서 모든 폴더의 이름을 원래 이름(abc 등)으로 변경했습니다.
대소문자를 구분하는 이름 변경의 경우git mv somefolder someFolder전에 저를 위해 일했지만 오늘은 어떤 이유로 일하지 않았습니다.으로 새 .temp 이다니습동했의 모든 .somefolder안으로temp된 제된somefolder▁the.temp 다음에 생성된 된다음성생.someFolder 이다니습동했의 모든 .temp안으로someFolder된 제된temp이고 추진적인someFolder그리고 그게 효과가 있었어!으로 됩니다.someFolder칫
다음은 디렉토리 이름 변경 예제입니다.
git mv src/dir1/ src/dir2/
다음과 같은 오류가 발생하는 경우Permission Denied해볼 수 있습니다
git mv src/dir1 src/temp/
git mv src/temp src/dir2
심플 트릭
임의의 임시 이름으로 디렉토리 이름을 변경한 후 다시 이름을 변경하면 됩니다.
저는 다음 명령으로 시도했지만 작동하지 않았습니다.나는 받고 있었습니다.fatal: renaming '...' failed: Invalid argumentmessage
git mv oldName NewName
그런 다음 다음 방법으로 해결합니다.
- 먼저 이름을 변경할 폴더를 복제합니다.
- 그런 다음 다음 명령을 실행하여 폴더를 제거했습니다.
git rm oldName -r
- 복제된 폴더의 이름을 다음으로 변경했습니다.
NewName
전체 폴더 경로를 지정하지 않으면 승인된 답변이 작동하지 않습니다.그렇지 않으면 치명적일 수 있습니다. 즉, 잘못된 소스 오류입니다.
인덱스를 변경해야 하고 커밋 후 트리 개체가 생성되기 때문에 ingit의 이름을 바꾸기가 어렵습니다.템플릿 이름을 템플릿으로 바꾸는 데 문제가 발생했습니다...나는 그 문제를 해결했습니다.
- bash의 템플릿에 템플릿 복사 [cp -r Templates templates ](gitmv Templates 템플릿이 작동하지 않음)
- bash [rm -r Templates ]에서 템플릿 제거(먼저 복사가 성공했는지 확인)
- 색인에서 템플리트 파일 제거 [색인을 보려면 "gitls-files -s"를 사용하십시오. "gitm"은 gitmTemplates/*와 같은 와일드카드를 사용할 수 있습니다. 색인 확인을 계속하십시오.]
- 이름이 바뀐 경로를 인덱스에 추가("git add -v.")하고 "gitls-files -s"로 결과를 확인합니다.
- 커밋 ["git commit -m" 이름 바꾸기..."
- 만약 당신이 리모트 git <원산지가 어디든,
폴더 이름을 변경합니다.git는 "콘텐츠 추적기"이므로 SHA1 해시는 동일하고 git는 사용자가 이름을 변경할 수 있다는 것을 알고 있습니다.유일하게 변화하는 것은 트리 객체입니다.
$ rm <directory> // remove the directory
$ git add . // add changes to the git
$ git commit // commit removed directory
언급URL : https://stackoverflow.com/questions/11183788/in-a-git-repository-how-to-properly-rename-a-directory
'programing' 카테고리의 다른 글
| SQL Server Reporting Services(VB)에서 이전 달력 달의 첫째 날과 마지막 날을 찾습니다.네트) (0) | 2023.05.09 |
|---|---|
| git의 "rebase --reserve-merges"가 정확히 무엇을 하는 것입니까 (그리고 그 이유는 무엇입니까?) (0) | 2023.05.09 |
| Xcode 4 - 새 Macintosh 설치에서 프로파일 프로비저닝 시 "유효한 서명 ID를 찾을 수 없음" 오류 (0) | 2023.05.09 |
| pgadmin4: postgresql 응용 프로그램 서버에 연결할 수 없습니다. (0) | 2023.05.09 |
| 코드 뒤에서 JavaScript 함수 호출 (0) | 2023.05.09 |