2012-02-13 3 views
8

나는 어떻게이 상태에 빠졌는지 모르겠지만 나의 로컬 git-svn repo에있는 내 master 브랜치는 원격 UAT 브랜치를 가리키는 것으로 보인다.Repoint git-svn master branch to trunk

git status 
# On branch master nothing to commit (working directory clean) 
git svn dcommit Committing to https://svn...com/MyRepo/branches/UAT ... 

어떻게 수정합니까?

+0

그것을 당신이 "고치는"것을 정확하게 알고있는 것을 돕습니다. 로컬 브랜치를 기반으로하는 로컬 마스터 브랜치는 아무 문제가 없습니다. 참으로 이것이 저의 저장소를 정상적으로 운영하는 방법입니다. –

답변

5

당신이 고치려고하는 것은 로컬 "master"브랜치가 원격 트렁크가 아니라 원격 UAC 브랜치를 기반으로한다는 것입니다. 기꺼이 커밋을 잃어 버리면 아래를 실행하면 트렁크를 체크 아웃 한 다음 마스터 브랜치를 현재 위치로 옮길 수 있습니다.

git checkout remotes/trunk 
git checkout -B master 

당신이 당신의 커밋을 잃고 싶지 않으면

git rebase은 당신의 친구입니다. 아래의 사용

git rebase $(git merge-base remotes/UAC master) master --onto remotes/trunk 

이의 UAC 분기 및 로컬 마스터 브랜치의 공통 부모를 밖으로 작동이 거기에서 트렁크 위에 마스터 가지의 끝 부분에있는 모든 커밋을 만들고, 그 다음에 마스터 지점을 이동 거기에 가리킨다.

+0

나는 똑같은 상황에서 어떻게 든 (master로 잘못된 브랜치를 통합 했습니까?)'checkout' 솔루션이 저를 위해 그것을 고쳤습니다. 내가 할 수 있다면이 대답을 받아 들일 것입니다. – abeger

0

한 가지 방법은 현재 마스터 분기의 이름을 바꾸고 원본/트렁크를 (새) 마스터 분기로 체크 아웃하는 것입니다.

git branch -m master uat 
git checkout origin/trunk master 

당신은 지금 벚꽃 그림은 마스터에 UAC 지점에서

조금 더 복잡한 문제 (I이 좀 도와 gitk --all을 사용) 커밋 할 수 있습니다 필요한 경우 : Rename master branch for both local and remote Git repositories

관련 문제