2009-12-04 3 views
1

내 이맥스 설정 파일이있는 git repo을 복제했습니다. 서브 디렉토리에 pylookup을 추가하고 싶습니다. 이 작업을 수행하는 올바른 방법은 무엇입니까?두 개의 별도 Git 리포지토리를 결합하는 방법은 무엇입니까?

내가 생각할 수있는 옵션은 다음과 같습니다.

cd ~/.emacs.d/pylookup/ 
git pull 
cd ~/.emacs.d 
git commit -a -m "updates to pylookup" 
git push 

내가 내 다른 시스템에 변경 사항을 당겨 즉 때


  1. 나는 제대로 그 업데이트는 내가 할 때, ~/.emacs.d/pylookup/로 복제 내 이맥스의 repo에 해당 폴더를 추가하는 경우 내가 새로운 버전의 파일 업로드를 할 수 있을까요?

  2. 단순히 이맥스 저장소에 pylookup/*을 무시하고 pylookup이 업데이트 될 때마다 모든 컴퓨터에서 업데이트하도록합니다. 몇 개의 레포와 몇 대의 기계가 있다면 이것은 귀찮을 것입니다. 그러나 나는 함께 살 수 있습니다.

  3. git submodule의 스마트 트릭이 있습니까? 그렇다면 당신은 내가 실제로 documentation을 이해하지 못했다는 설명을 할 수 있습니다. 이맥스와 필루 픽에 대한 변경 사항을 어떻게 얻을 수 있습니까?

  4. 답변 2로 진행하지만 모든 하위 repos를 업데이트하는 스크립트를 작성합니까? 내가 그렇게했다면 필룩 업이 바뀔 때마다 각 기계에서 한 번씩 실행할 수 있습니다. 가능한 관련 게시물의


커플.

답변

5

당신은 만들 경우 Git submodule :

$ git submodule add git://github.com/tsgates/pylookup.git pylookup 
$ git submodule init pylookup 
$ git submodule update pylookup 

이의이 pylookup 몇 가지 변화가 있고 당신이 그 (것)들에게 싶어한다고 가정 해 봅시다 :

$ cd pylookup 
$ git pull origin master 
$ cd .. 
$ git add pylookup 
$ git commit -m "Track new commit of pylookup" 
+0

좋은 대답. 이맥스 변경 사항을 가져 오면 다른 컴퓨터에서 어떤 일이 발생합니까? 즉, 모든 컴퓨터에서 pylookup을 업데이트해야합니까? –

0

하위 트리 병합을 비슷한 문제 (http://git-scm.com/book/en/Git-Tools-Subtree-Merging)와 함께 사용했습니다. 같은 뭔가 : 여기

$ git remote add -f pylookup /path/to/pylookup 
$ git merge -s ours --no-commit pylookup/master 
$ git read-tree --prefix=pylookup/ -u pylookup/master 
$ git ci -m "merging pylookup into pylookup subdirectory" 

좋은 가이드 : http://jasonkarns.com/blog/merge-two-git-repositories-into-one

+0

"git ci"는 git commit의 별명입니까? 비표준 별칭을 사용하지 않는 것이 좋습니다. – dxvargas

+1

입니다. 머리를 주셔서 감사합니다. – Natasha

관련 문제