2011-03-05 4 views
4

"git merge"에서 분기 이름을 지정할 때 와일드 카드를 사용할 수 있습니까? 예를 들어"git merge"의 분기 이름 지정에 와일드 카드

, 내가있는 경우 :

[email protected]:~/tmp/texterra$ git branch -r 
    origin/HEAD -> origin/master 
    origin/master 
    origin/share/branch1 
    origin/share/branch2 
    origin/share/another-branch 

내가 할 수있는 :

git merge origin/share/* 

BRANCH1, 브랜치와 다른 분기와 병합?

답변

9

그런 식으로 와일드 카드를 직접 사용할 수는 없겠지만, git for-each-ref을 사용하여 분기 이름을 일치시킬 수는 있습니다. 예를 들어,의 출력에서 ​​볼 : (.. 당신은 그냥 대신 refs/remotes/origin/share/을 할 수있는 나는 와일드 카드가 작동을 입증 할 수 있도록 즉, 당신이 패턴에 필요한 것보다 일부러 더의)

git for-each-ref --format="%(refname)" refs/remotes/origin/share/*bran* 

그래서, 하나의 명령으로 수행 할 수 있습니다.

git merge $(git for-each-ref --format="%(refname)" refs/remotes/origin/share/) 

... 모든 분기에서 문어 병합을 수행합니다. 내가 많이하지가 할 선호하는 곳

하지만, 나는 그것이 어려운 상황을 생각 찾는거야, 정직하게하려면 :

git merge origin/share/branch1 
git merge origin/share/branch2 
git merge origin/share/another-branch 

... 또는 많이이 있습니다 아마도 경우 지점 :

for c in $(git for-each-ref --format="%(refname)" refs/remotes/origin/share/) 
do 
    git merge $c || break 
done 
2

git branch -r | grep "share" | xargs git merge?

+0

가장 간단한 간단한 해결책입니다! –