나는 나의 자식 목록에 자식 하위 모듈이있다. 내가 이해할 수 있듯이, 메인 레포는 SHA 값 (어딘가에 ...)을 저장하고 서브 모듈의 특정 커밋을 가리켜 "링크"되어 있습니다.Git Submodule 포인터를 포함 저장소에 저장된 커밋으로 되돌리려면 어떻게해야합니까?
내 서브 모듈로 들어가서 git checkout some_other_branch
을 입력했습니다. 나는 내가 어디에서 왔는지 전혀 모른다.
메인 레포와 서브 모듈이 다시 동기화되도록 포인터를 되돌리고 싶습니다.
첫 번째 (아마 순진한) 본능은 다른 모든 것에서 효과가있는 것으로 보이는 git reset --hard
입니다. 놀랍게도,이 시나리오에서는 작동하지 않았습니다.
git diff
을 입력 할 수 있다고 생각했는데, 서브 모듈 포인터가 가지고 있던 SHA ID를 메모 한 다음 서브 모듈과 git checkout [SHA ID]
으로 향합니다 ...하지만 확실한 방법이 있어야합니까?
내가 아직도 자식 서브 모듈에 대해 배우고 있기 때문에 모를 개념에 대한 단어가 있으면 내 용어를 수정하십시오.
어떻게 든 : 서브 모듈에서
: 부모에서
: 나는 완전히 내 부모와 서브 모듈 모두 unstaged 변경 사항을 취소하려는 경우 그래서, 다음을 수행 '--init'을 추가하십시오. 그것이 없다면, 서브 모듈은'(새로운 커밋들)'상태를 유지할 것이다. 내 서브 모듈이 이미 초기화되었지만. – Ambidex
@Ambidex 예 --init' 옵션은이 모든면에서 결정적입니다. 내 하위 모듈이 https를 통해 복제 된 이후 사용자 이름과 비밀번호를 묻는 메시지가 표시되었습니다. 나는 두 폴더에 들어가서 체크 아웃을 위해'ssh' 프로토콜을 사용하도록 리모트를 설정했다. –