Git 하위 모듈 푸시
서브모듈을 수정하면 커밋을 서브모듈 원점으로 다시 돌릴 수 있습니까, 아니면 클론이 필요합니까?클론인 경우 다른 저장소에 클론을 저장할 수 있습니까?
서브모듈은 일부 추가 메타데이터(gitlink tree entry, .gitmodules 파일)를 가진 다른 레포 내의 gitrepo의 클론에 불과합니다.
$ cd your_submodule
$ git checkout master
<hack,edit>
$ git commit -a -m "commit in submodule"
$ git push
$ cd ..
$ git add your_submodule
$ git commit -m "Updated submodule"
git1.7.11 ([ANNOUNCE] Git 1.7.11.rc1 및 릴리스 노트, 2012년 6월) 이후로 다음과 같이 언급하고 있습니다.
"
git push --recurse-submodules
된 하위 을 배웠습니다.".
아마도 이 패치와 옵션 이후에 완료된 것 같습니다.
recurse-submodules=<check|on-demand>::
푸시할 수정사항에 의해 사용되는 모든 하위 모듈 커밋이 원격 추적 분기에서 사용 가능한지 확인합니다.
- 한다면
check
가 사용되며, 푸시될 수정사항에서 변경된 모든 서브모듈 커밋을 원격에서 사용할 수 있는지 확인합니다.
그렇지 않으면 푸시가 중단되고 0이 아닌 상태로 종료됩니다.- 한다면
on-demand
가 사용되며, 푸시될 리비전에서 변경된 모든 하위 모듈이 푸시됩니다.
온디맨드에서 필요한 모든 수정사항을 푸시할 수 없는 경우에도 중단되고 0이 아닌 상태로 종료됩니다.
따라서 (부모 레포에서) 모든 것을 한 번에 푸시할 수 있었습니다.
git push --recurse-submodules=on-demand
이 옵션은 한 수준의 중첩에만 적용됩니다.다른 서브모듈 내부의 서브모듈에 대한 변경사항은 푸시되지 않습니다.
git 2.7(2016년 1월)로, 간단한 git push만으로도 부모 레포를 밀어내기에 충분할 것입니다.모든 서브모듈을 포함합니다.
Mike Crow()의 commit d34141c, commit f5c7cd9(2015년 12월 3일), commit f5c7cd9(2015년 12월 3일), commit b33a15b(2015년 11월 17일)를 참조하십시오.mikecrowe
(2015년 12월 21일 주니오 C 하마노 ---- 커밋 5d35d72에 합병됨)
push
: 보탠다recurseSubmodules
--recurse-submodules
명령줄 매개 변수가 얼마 전부터 있었지만 구성 파일과 동등한 매개 변수가 없습니다.에 .
git fetch
push.recurseSubmodules
이 파라미터에 대한 기본값을 제공합니다.
를 위해서는다도 .--recurse-submodules=no
필요한 경우 명령줄에서 구성을 재정의할 수 있도록 허용합니다.은 를 .
push
코드를 사용하다submodule-config
fetch
.
이제 문서에는 다음이 포함됩니다.
push.recurseSubmodules
:푸시할 수정사항에 의해 사용되는 모든 하위 모듈 커밋이 원격 추적 분기에서 사용 가능한지 확인합니다.
- 이 '이'인
check
합니다.', Git 는합니다.커밋이 누락된 경우 푸시가 중단되고 0이 아닌 상태로 종료됩니다.- 이 '이'인
on-demand
된 모든 .온디맨드에서 필요한 모든 수정사항을 푸시할 수 없는 경우에도 중단되고 0이 아닌 상태로 종료됩니다.- 이 '이'인
no
푸시 시 됩니다.시 ' (를) 를 하여 이 할 수 .
--recurse-submodules=check|on-demand|no
'.
그래서:
git config push.recurseSubmodules on-demand
git push
Git 2.12 (2017년 1분기)
git push --dry-run --recurse-submodules=on-demand
실제로 효과가 있을 겁니다.
Brandon Williams()mbrandonw
의 커밋 0301c82, 커밋 1aa7365 (2016년 11월 17일) 참조.
(2016년 12월 16일 주니오 C 하마노 ---- 커밋 12cf113에 합병)
push run with --dry-run
푸시가 주문형으로 하위 모듈을 푸시하도록 구성된 경우 실제로(Git 2.11 2016년 12월 이하/이전) 드라이 런을 수행하지 않습니다.
대신 푸시해야 하는 모든 하위 모듈은 실제로 원격으로 푸시되지만 슈퍼 프로젝트에 대한 업데이트는 드라이 런으로 수행됩니다.
이것은 버그이며 드라이런의 의도된 행동이 아닙니다.가르치다
push
존경하다, 존경하다, 존경하다, 존경하다, 존경하다, 존중하다, 존경.--dry-run
하위 모듈 '주문형'을 재귀적으로 푸시하도록 구성된 경우 옵션.
이 작업은 다음을 통과하여 수행됩니다.--dry-run
Dry-run을 수행할 때 하위 모듈에 대한 푸시를 수행하는 하위 프로세스에 플래그를 지정합니다.
그리고 에는 " Git 2.12 가 --recurse-submodules=only
" 최상위 슈퍼 프로젝트를 밀어내지 않고 하위 모듈을 밀어내는 옵션.
Brandon Williams()mbrandonw
의 커밋 225e8bf, 커밋 6c656c3, 커밋 14c01bd(2016년 12월 19일)를 참조하십시오.
(2017년 1월 31일 주니오 C 하마노 ---- 커밋 792e22e에 합병)
Git 2.36 (2022년 2분기)에서 ""는 git fetch --negotiate-only
(man)우리 역사의 어떤 부분이 다른 쪽에서 누락되어 있는지 파악하기 위해 에 의해 사용되는 내부 명령어입니다.
다 시에도 하지 않아야 .fetch.recursesubmodules
다를 .gc
".
코드는 일반적인 조상을 발견할 뿐 다른 것은 하지 않도록 강화되었습니다.
글렌 추()chooglen
의 커밋 386c076, 커밋 135a12b, 커밋 bec587d(2022년 1월 18일) 참조.
주니오 C 하마노의 커밋 드포에 (2022년 1월 20일)gitster
참조.
(주니오 C 하마노 ---- 커밋 472a219, 2022년 2월 9일 합병)
fetch --negotiate-only
하위 모듈fetch --negotiate-only
업데이트 안 함사인 오프: 글렌 추
git fetch --negotiate-only
(man) 은 푸시 협상의 구현 세부사항이며 대부분의 호출과는 달리 실제로 주 저장소를 업데이트하지 않습니다.
따라서 하위 모듈 재귀가 활성화된 경우에도 하위 모듈을 업데이트해서는 안 됩니다.이것은 단지 느릴 뿐만 아니라 "과의 협상을 밀어붙이는 것과 같은 잘못된 것입니다.
submodule.recurse=true
됩니다를(를) 호출하므로 됩니다.git fetch --negotiate-only
.합니다인 경우 하여 이 합니다.
--negotiate-only
주어진.
에가 요.--negotiate-only
그리고.--recurse-submodules
호환되지 않습니다. 이 잘못된 조합을 확인하고 다이하십시오.
(와) .
--recurse-submodules=[yes|on-demand]
.
를 사용하여 'Git 2.39(2022년 4 를을)' 로 으로 푸쉬합니다.--recurse-submodules=on-demand
'.
조나단 탄()의 커밋 jhowtan
e62f779 (2022년 11월 14일) 참조.
(주니오 C 하마노 ---- 2022년 11월 23일 173fc54 커밋)
Doc
Doc
서류를push.recurseSubmodules=only
사인 오프: 조나단 탄
사인 오프 바이:테일러 블라우
가 Git 는를 서브 것을 .
--recurse-submodules=only
6c656c3(")을 통해submodules
: 보탠다RECURSE_SUBMODULES_ONLY
value, 2016-12-20, Git v2.12.0-rc0 -- 배치 #8) 및 225e8bf에 나열된 병합(")push
: 하위 모듈만 푸시하는 옵션 추가", 2016-12-20, Git v2.12.0-rc0 -- batch #8에 나열된 병합).
이 기능을 정기적으로 사용하는 사용자의 경우 동등한 구성을 가지는 것이 좋습니다.보니 이(
push.recurseSubmodules=only
는) (는) 에 언급되지 이미 됩니다.--recurse-submodules=only
feature되었습니다를 구문 하는 데 )--recurse-submodules
을(를한 기능이됩니다를(를) 구문 하는 데 됩니다.push.recurseSubmodules
남은 것은 문서화하고 테스트하는 것인데, 이것이 이 약속이 하는 일입니다.가 할 때 이 있을 수 .
push.recurseSubmodules=only
구성: 저장소에 하위 모듈만 푸시되고 자체는 푸시되지 않는 경우 수퍼 프로젝트는 결코 푸시될 수 없기 때문입니다.
을"합니다"으로on-demand
합니다."라고 합니다합니다.
경고 메시지:
recursing into submodule with push.recurseSubmodules=only; using on-demand instead
"체크"일 수 있습니다.
on-demand
", "only
", 또는 "no
"", "으로"와 같은 .push --recurse-submodules
".
'''(를)''' 시
on-demand
' 아니면 'only
에 ", 에"가push.recurseSubmodules={on-demand,only}
" 또는 "submodule.recurse
합니다.", 합니다.이 에는",only
는 "로됩니다"로됩니다.on-demand
".
bash 명령 예제:
git submodule foreach "git add . && git commit -m 'update' && git push"
언급URL : https://stackoverflow.com/questions/5814319/git-submodule-push
'programing' 카테고리의 다른 글
C/C++에 기능이 있는지 확인하는 방법은? (0) | 2023.10.07 |
---|---|
혼합된 컨텐츠가 있는 보안 연결을 통해 지리적 위치에 대한 액세스가 차단되었습니다. (0) | 2023.10.07 |
jQuery: 클릭 시 설정된 증분(픽셀 단위)을 스크롤 다운 페이지로 이동하시겠습니까? (0) | 2023.10.07 |
안드로이드:소프트 키보드 위에 버튼을 누르는 방법 (0) | 2023.10.07 |
xpath를 깨는 xml 네임스페이스! (0) | 2023.10.07 |