Git 하위 모듈 이름 바꾸기
Git 하위 모듈 디렉토리를 삭제하고 새 대상 이름으로 다시 추가하는 전체 동작을 수행하는 것 외에 Git 하위 모듈 디렉토리의 이름을 쉽게 변경할 수 있는 방법이 있습니까?
이 작업을 수행하는 동안 상위 디렉토리에서 다음 작업을 수행할 수 없는 이유는 무엇입니까?git mv old-submodule-name new-submodule-name
Git 1.8.5(2013년 10월)는 프로세스를 단순화해야 합니다.간단히 수행:
git mv A B
"
git mv A B
서브모듈 이동 시A
작업 트리를 재배치하고 파일의 경로를 조정하는 방법을 배웠습니다.
commit 0656781fadca1에서 자세히 보기:
현재 사용 중: "
git mv
하위 모듈에서 하위 모듈의 작업 트리를 수퍼 프로젝트의 작업 트리로 이동합니다.하지만 서브모듈의 경로 설정은.gitmodules
이는 현재 작업 트리와 일치하지 않으며 적절한 명령에 의존하는 git 명령을 만듭니다.path -> name mapping
(같은)status
그리고.diff
이상한 짓을 하다let "
git mv
하위 모듈의 작업 트리를 이동할 뿐만 아니라 "을(를) 업데이트하여 여기에 도움이 됩니다.submodule.<submodule name>.path
에서 설정.gitmodules
파일과 스테이지 둘 다.
그렇지 않을 때는 이런 일이 일어나지 않습니다..gitmodules
파일이 발견되었으며 이 하위 모듈에 대한 섹션이 없는 경우에만 경고가 발생합니다.이는 사용자가 다음을 제외하고 일반 gitlinks를 사용할 수 있기 때문입니다..gitmodules
파일 또는 "git mv" 명령을 실행하기 전에 이미 손으로 경로 설정을 업데이트했습니다(이 경우 경고는 그에게 이를 상기시킵니다).mv
그를 위해 그렇게 했을 것입니다).
그럴 때만.gitmodules
검색되었으며 병합 충돌이 포함되어 있습니다.mv
명령이 실패하고 사용자에게 다시 시도하기 전에 충돌을 해결하라는 메시지가 표시합니다.
git 2.9 (2016년 6월) 개선 예정git mv
하위 모듈의 경우:
스테판 벨러()stefanbeller
의 127331(2016년 4월 19일)을 참조하십시오.
(주니오 C 하마노에 의해 합병 -- -- 9cb50a3, 2016년 4월 29일 커밋)
mv
중첩된 하위 모듈 이동 허용"
git mv old new
내부의 하위 디렉터리로 사는 하위 모듈에 대한 경로를 조정하지 않았습니다.old/
디렉토리를 올바르게 지정합니다.하지만 하위 모듈은 Git 디렉토리에 대한 링크와 업데이트가 필요합니다.
.gitmodules
파일.
다음 워크플로우가 작동하고 있습니다.
- .git 모듈 업데이트
mv oldpath newpath
git rm oldpath
git add newpath
git submodule sync
참고: 이 접근 방식은 인덱스를 업데이트하지 않습니다..gitmodules
2018년 버전의 GIT에서 제대로.
참고: 다음을 수행할 수 있습니다.git mv oldpath newpath
이제, VonC의 답변에서 지적한 바와 같이. (최신 버전의 git을 사용하고 있는지 확인하십시오.
올바른 솔루션은 다음과 같습니다.
mv oldpath ~/another-location
git rm oldpath
git submodule add submodule-repository-URL newpath
저는 위에서 제안한 것 중 몇 가지만 시도해 보았습니다.내가 달려갑니다.
$ git --version
git version 1.8.4
서브모듈의 초기화를 해제하고 디렉토리를 제거한 후 새 서브모듈을 생성하는 것이 가장 좋습니다.
git submodule deinit <submodule name>
git rm <submodule folder name>
git submodule add <address to remote git repo> <new folder name>
적어도 그것이 저에게 가장 효과적인 것입니다.YMMV!
수에 먼저 (으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으)deinit
를 다시 하고 다시 추가합니다.
제거 후:
git submodule deinit <path>
git rm --cached <path>
다음에서 해당 항목에 대한 참조를 다시 확인하고 제거할 수도 있습니다.
.gitmodules
.git/config
- 에서
.git/modules/<name>
(백업을 만드는 것이 가장 좋습니다.) 각 폴더에 있는 것처럼config
에서 파일의 파에대참보관다니에 합니다.worktree
그런 다음 다음 다음 방법으로 저장소에 대한 변경 내용을 커밋하여 변경 내용을 준비합니다.
git commit -am 'Removing submodule.'
다음을 통해 해결되지 않은 문제가 없는지 다시 확인합니다.
git submodule update
git submodule sync
git submodule status
이제 Git 하위 모듈을 다시 추가할 수 있습니다.
git submodule add --name <custom_name> git@github.com:foo/bar.git <my/path>
MacOs: VonC 솔루션을 사용하여 하위 모듈 폴더를 변경하려는 경우Common
소문자로:
git mv Common common
알겠습니다
fatal: 'Common'의 이름을 바꾸지 못했습니다.잘못된 인수
솔루션 - 일부 임시 폴더 이름을 사용하고 두 번 이동합니다.
git mv Common commontemp
git mv commontemp common
이상입니다 :)
.gitmodules 파일을 편집하여 하위 모듈의 이름을 바꾼 다음 하위 모듈 디렉터리의 이름을 변경합니다.
제 생각에 당신은 아마도 할 필요가 있을 것 같습니다.git submodule sync
그 후에, 하지만 저는 지금 확인할 수 있는 위치에 있지 않습니다.
언급URL : https://stackoverflow.com/questions/4526910/rename-a-git-submodule
'programing' 카테고리의 다른 글
각 지점 및 해당 지점의 마지막 개정 날짜를 Git로 나열 (0) | 2023.06.28 |
---|---|
'{}' 유형을 '{title: string; }' 유형에 할당할 수 없습니다. (0) | 2023.06.28 |
파이썬의 사이트 패키지 디렉터리는 무엇입니까? (0) | 2023.06.28 |
Mongoose findOneAndUpdateUspert _id null? (0) | 2023.06.28 |
Apache POI를 사용하여 Excel에서 단일 열 잠금 (0) | 2023.06.28 |