2013-04-11 2 views
1

오늘까지 SVN에서 일 했으므로 git의 고급 기능에 익숙하지 않습니다.외부 요청에 대해 git external

내 프로젝트에서 사용하는 일부 파일이 들어있는 저장소를 복제하려고합니다. 내 프로젝트가 자신의 저장소에 있으므로 파일을 커밋하면 프로젝트 아래로 이동합니다. 만약 내가 그들을 바꾼다면, 그들은 또한 내 프로젝트에서 커밋됩니다.

그러나 나는 그것들을 가져온 repo에 대한 pull 요청으로 간주되기를 원합니다.

SVN에서 저는 svn-externals를 사용했습니다. 어떻게하면 git에서 쉽게 할 수 있습니까?

답변

2

git submodule을 사용할 수 있습니다.

git의 최신 버전에서는 git submodules가 서브 모듈 repo의 최신 커밋을 추적 할 수있게되었습니다.
Git1.8.2 :

"git submodule는"합니다 (이 superproject의 gitlink에 기록 된 커밋과의 통합에 반대) 원격 지사의 끝과 통합하기 위해 새로운 모드를 배우기 시작했다. 남자 페이지에서

# add submodule to track master branch 
git submodule add -b master [URL to Git repo]; 

# update your submodule 
git submodule update --remote 

:

--remote 

이 옵션은 update 명령에만 유효합니다.
수퍼 프로젝트의 기록 된 SHA-1을 사용하여 하위 모듈을 업데이트하는 대신 하위 모듈의 원격 추적 분기 상태를 사용하십시오.

이는 일반적인 동작 인 svn external에 가깝습니다.

0

여기도 sub-trees입니다.

서브 모듈을 통해 서브 트리에서 발견 할 수있는 가장 큰 장점은 하위 트리의 파일을 올바르게 푸시하는 명령이 다르더라도 폴더의 내용을 수정하여 동일한 상위 repo에서 업스트림으로 되돌릴 수 있다는 점입니다 (git subtree push - P ...)

또한 부모 repo를 복제하는 다른 사람들은 하위 트리 명령 자체를 다룰 필요없이 모든 내용을 가져옵니다. 나는 모든 사람들이 그들을 설정하고 개별적으로 관리해야 할 서브 모듈을 생각한다.