2008-10-03 14 views
11

우리는 여기에서 반 중앙 집중식 저장소를 사용하고 있습니다. 각 개발자는 중앙 자식 저장소에서 자신의 서브 트리를 가지고 있으므로 보인다 :로컬 브랜치를 다른 프리픽스가있는 원격 브랜치에 git로 매핑 할 수 있습니까?

master 
alice/branch1 
alice/branch2 
bob/branch1 
michael/feature 
release/1.0 
release/1.1

내 트리에서 로컬로 작동 내가 topic/feature이, 중앙 나무에서 michael/feature에 해당합니다.

나는 원격 트리 내 변화를 밀어

git push origin topic/feature:michael/feature 

을 사용하고있다. 그러나 이것은 번거롭고 실수 (예 : 개발자 이름 생략, 기능 이름 철자 오류 등)가 발생하기 쉽습니다.

나는 이것을 더 깨끗한 방법으로 찾고 있습니다. 예 : 'git push' 수정 된 가져 오기 refspec 함께 다른 원격 설정을 할 것이라고 의심하지만 그것을 정확히 어떻게 해야할지 모르겠습니다. 다른 원격을 사용하도록 현재 분기 정의를 수정하는 방법을 잘 모르겠습니다.

[remote "origin"] 
    url = git://central/git/project 
    fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "topic/feature"] 
    remote = origin 
    merge = refs/heads/michael/project

편집 : 나는 또한/끌어하려면이 옵션을 적용 할가 가져 오는

내 현재 .git/config이 같이 보입니다. 하지만 branch.<name>.merge이 처리합니까?

나는 이것을 연구하고 여기에 계속 게시 할 것이지만 뭔가를 찾으면 여기에 올리 겠지만 다른 좋은 아이디어를 얻기를 바랍니다.

편집 2 : 로컬 및 원격 지점 이름을 동일하게 유지할 것을 결정했습니다. 그것은 최소한의 일이 될 것이고 미래의 문제를 가장 덜 일으키는 것으로 보인다.

+0

.git/config를 수정할 때 먼저 백업해야합니다. 무언가를 망쳐 놓으면 알려진 상태의 파일을 복원하여 해당 상태로 돌아 가면됩니다. – webmat

+0

이것은 실제로 Heroku, Nodester 및 AppFog와 같은 서비스를 호스트하기 위해 git 배포를 수행 할 때 많이 발생합니다. – studgeek

답변

3

가능한 경우 로컬로 &과 동일한 지사 이름을 사용하는 것이 좋습니다. 그런 다음 git push은 모든 지사를 중앙 저장소의 해당 지사로 푸시합니다.

로컬 및 원격 저장소에서 다른 접두사를 사용하려면 새 기능 분기를 만들 때마다 구성 파일에 매핑을 추가해야합니다. 주제/BRANCH_NAME에 대한 매핑을 설정하는 명령은

git config remote.origin.push refs/heads/topic/BRANCH_NAME:michael/BRANCH_NAME 
4

[원격 "origin"] 섹션에서 매핑 당 한 줄을 추가하십시오. 마스터에서 마스터까지 포함.

push = refs/heads/master:master 
push = refs/heads/topic/feature:michael/feature 

나는 어떻게 git-config 명령을 사용할지 모르겠다.

직선 git 푸시 (매개 변수 없음)를 수행하면 이후부터 모든 분기가 푸시됩니다.

로컬 및 원격으로 동일한 지사 이름을 사용하지 않는 이유에 대해 설명해주십시오.

+0

브랜치를 일치시키는 것이 좋은 지적입니다 ... 나는 그걸로 전환 할 수 있습니다. 그 대신 푸시 매핑에 와일드 카드를 포함시킬 수 있습니까? 일반적인 질문과 유사합니까? –

1

당신은 이런 일에 원격에 다른 추적 지점에 지사를 매핑 할 수 있습니다 :

git remote add heroku [email protected]:YOURAPPNAME.git 
git checkout -b heroku -t heroku/master 

귀하의 설정이 최대 유사 종료 무엇을 @Paul은 (실제로 "더 간단하다") 것을 제안합니다.

나에게 잘 맞는 사용법 단계는이 요약 (나와 함께 조정)을 참조하십시오. https://gist.github.com/2002048.