2013-03-07 3 views
3

$REPO_URL의 저장소에 dev을 포함하여 여러 개의 브랜치가 있다고 가정합니다. 자, 내가, 다른git fetch를 이해하려고 시도합니다

% git clone $REPO_URL --branch dev wd 
% cd wd 
% git branch -a 
* dev 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/dev 
    remotes/origin/issue6 
    remotes/origin/issue26 
    remotes/origin/issue30 
    ... 
    remotes/origin/issue709 
    remotes/origin/issue712 
    remotes/origin/issue716 
    remotes/origin/master 

후 하나 개의 권리를 다음 명령을 실행한다고 가정 나는이 시점에서 무엇을해야 형태 remotes/origin/X의 각 지점을 위해 그것을 정확히 일치하는 지역 지점 X가 있다고 그래서?

% git rev-parse remotes/origin/X 
% git rev-parse X 

또한 git branch -a의 출력은 다음과 같이보고 끝날 것이라고 :

* dev 
    issue6 
    issue26 
    issue30 
    ... 
    issue709 
    issue712 
    issue716 
    master 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/dev 
    remotes/origin/issue6 
    remotes/origin/issue26 
    remotes/origin/issue30 
    ... 
    remotes/origin/issue709 
    remotes/origin/issue712 
    remotes/origin/issue716 
    remotes/origin/master 
+0

간단한 쉘 스크립트는 것을 할 수 있어야 잠시 ... –

+0

질문은 어떻게 반복을 달성 할 수 있는지에 관한 문제가 아닙니다. – kjo

+3

당신이 사용하는 솔루션이 무엇일까요? –

답변

3

당신은이에 대한 fetch 필요하지 않습니다 이것에 의하여 나는 다음 두 명령은 동일한 출력을 생성하는 것을 의미 왜냐하면 당신이 repo를 복제했을 때 이미 그렇게했기 때문입니다. 당신이 원하는 것은 각각의 원격 추적 브랜치에 맞게 로컬 지점이며,이를 위해 당신은 checkout를 사용할 수 있습니다

git checkout -b issue6 origin/issue6 

그래서 당신이 모든 원격 지점을 통해 루프와 그들을 확인하는 스크립트를 가질 수있다. 댓글에서 언급 한 바와 같이

, 자식의 최신 버전은 간단한 명령을 사용할 수 있습니다

git checkout issue6 
+3

최근 버전의 자식,'자식 체크 아웃 issue6' 같은 일을 할 것입니다. –

+0

@MattGreer, 이것을 지적 해 주셔서 고맙습니다. – PinnyM

+0

지점을 만들려면 체크 아웃해야하나요? – kjo

2

는 루프 쉘은 그것을 할 것입니다 :

for BRANCH in $(git branch -r | grep -v HEAD) # list of remote branches (excluding HEAD) 
do 
    git checkout --track ${BRANCH} 
done 
관련 문제