Git 하위 모듈에서 변경사항을 "커밋"하려면 어떻게 해야 합니까?
저는 순진하게도 Git 서브모듈을 설정하고 서브버전 외부처럼 처리했습니다. 즉, 이제는 어디에도 적용되거나 추진되지 않았다는 것을 깨달은 변화들로 가득 차 있습니다.
서브모듈 변경 사항을 업스트림 레포에 커밋/푸시하기 쉬운 방법이 있습니까?Git에서 이러한 방식으로 별도의(그러나 연결된) 저장소에서 동시에 개발을 수행하기 위해 권장되는 기술은 무엇입니까?
하위 모듈은 자체 보고서/작업 영역으로, 자체적으로.git
디렉토리입니다.
그래서 일단.commit/push
서브모듈의 변경 사항:
$ cd path/to/submodule
$ git add <stuff>
$ git commit -m "comment"
$ git push
그런 다음 기본 프로젝트를 업데이트하여 하위 모듈의 업데이트된 버전을 추적합니다.
$ cd /main/project
$ git add path/to/submodule
$ git commit -m "updated my submodule"
$ git push
다양한 하위 모듈에서 여러 가지 변경 사항을 적용한 경우 다음과 같이 모든 것을 한 번에 푸시(즉, 상위 레포에서 한 번 푸시)할 수 있습니다.
git push --recurse-submodules=on-demand
git1.7.11 ([ANNOUSE] Git1.7.11.rc1)은 다음을 언급합니다.
"
git push --recurse-submodules
선택적으로 슈퍼 프로젝트에 바인딩된 하위 모듈의 이력을 조사하여 밀어내는 방법을 배웠습니다.
--recurse-submodules=<check|on-demand|no>::
푸시할 리비전에서 사용되는 모든 하위 모듈 커밋이 원격 추적 분기에서 사용 가능한지 확인합니다.
- 한다면
check
를 사용하면 푸시할 리비전에서 변경된 모든 하위 모듈 커밋을 원격에서 사용할 수 있는지 확인합니다.
그렇지 않으면 푸시가 중단되고 0이 아닌 상태로 종료됩니다.- 한다면
on-demand
를 사용하면 푸시할 리비전에서 변경된 모든 하위 모듈이 푸시됩니다.
필요한 모든 수정사항을 온디맨드 방식으로 푸시할 수 없는 경우에는 해당 수정사항도 중단되고 0이 아닌 상태로 종료됩니다.
이 옵션은 중첩의 한 수준에서만 사용할 수 있습니다.다른 서브모듈 내부의 서브모듈에 대한 변경사항은 푸시되지 않습니다.
$ git submodule status --recursive
이 상황에서 생명을 구하는 사람이기도 합니다.사용할 수 있고,gitk --all
SHA1을 추적하고 하위 항목이 무엇이라고 생각하는지 확인합니다.
하위 모듈을 일반 리포지토리와 똑같이 처리할 수 있습니다.변경사항을 업스트림으로 전파하려면 일반적으로 해당 디렉토리 내에서 커밋하고 푸시하기만 하면 됩니다.
커밋하고 푸시하기 전에 하위 모듈에 대한 작업 리포지토리 트리를 시작해야 합니다.저는 거북이를 사용하고 있으며 다음과 같은 일을 합니다.
먼저 디렉터리가 아닌 .git 파일이 있는지 확인합니다.
- 이러한 파일이 있는 경우 슈퍼모듈 git 디렉토리의 경로를 포함합니다.
- 이 파일 삭제
- 속이다, 속에.
- dogit 하위 모듈에 사용된 원격 경로 추가
- 아래 지침을 따릅니다.
.git 파일이 있으면 로컬 트리를 추적하는 .git 디렉토리가 있습니다.분기를 생성하거나 마스터로 전환해야 합니다(때로는 작동하지 않음).가장 좋은 방법은 - git fetch - git pull입니다.가져오기를 생략하지 마십시오.
이제 커밋 및 풀이 오리진/마스터와 동기화됩니다.
언급URL : https://stackoverflow.com/questions/5542910/how-do-i-commit-changes-in-a-git-submodule
'source' 카테고리의 다른 글
테이블 값 함수에서 변수 선언 (0) | 2023.05.06 |
---|---|
Postgre로 SQL 덤프 가져오기SQL 데이터베이스 (0) | 2023.05.06 |
SQL Server 데이터베이스 크기 선택 (0) | 2023.05.06 |
iis 7.0에서 .net Framework 4.0 웹 사이트를 실행하는 데 문제가 있습니다. (0) | 2023.05.06 |
왜 "bytes(n)"는 n을 이진 표현으로 변환하는 대신 길이 n 바이트 문자열을 생성합니까? (0) | 2023.05.06 |