2013-07-02 2 views
10

git svn fetch은 어떻게 작동합니까? 마스터 또는 다른 지부와 병합하거나 리베이스 할 수 있도록 가져온 지사는 어디에 있습니까? git remote이 내 git svn 저장소에서 아무 것도주지 않기 때문에 데이터를 가져온 위치는 어디입니까?힘내 : 어떻게 힘내 svn 가져 오기 작동합니까?

답변

11

이것은 git svn fetch 작동 방법은 다음과 같습니다 자식 - svn의 만든 그 의사 지점을 포함, 모든 원격 추적 브랜치를 볼 수 git branch -r을 실행 SVN 서버는 자식를 사용할 때 당신은, 당신은 당신의 지역 .gitconfig 파일에 원격 SVN 서버에 대한 링크가 있습니다.

현재 분기를 마지막 버전으로 업데이트하려면 git svn rebase을 사용할 수 있습니다. 그러나 당신의 svn 프로젝트가 크다면 최종 개정판이 성공적인 빌드인지 알 수없는 상황에 처할 수도 있습니다. 마지막으로 성공적인 빌드를 제공하는 젠킨스 (Jenkins)를 사용하여 예를 들어 성공적인 빌드 인 특정 리비전으로 업데이트하려면 먼저 을 사용하여 원하는 리비전에을 가져오고 리베이스을 가져와야합니다 가져온 커밋들.

이 경우 사용자는 git svn fetch -r <revision>입니다. 이렇게하면 원하는 수정본까지 로컬에서 커밋을 가져옵니다. 가져온 데이터를 리베이스하려면 git svn rebase -l 또는 git svn rebase --local을 사용해야합니다. 로컬 리베이스를 수행하기 위해 온라인 상태 일 필요는 없습니다.

-1

git-svn 도구는 실제로 원격 Git 리모컨으로 원격 SVN 브랜치를 만들지 않습니다. 그들은 리모컨처럼 보이지만 실제로는 리모컨으로 작동하지 않습니다. git-svn은 브랜치를 내부적으로 추적하며 너무 좌절감을 느꼈습니다.

그러나 SVN 분기에서 분기하거나 병합 할 수 있습니다.

git-svn를 사용하면 리모컨의이없는 :

$ git branch -r 
svn/SVNBranch1 
svn/SVNBranch2 
$ git checkout -b branch1 svn/SVNBranch1 
+0

'SVN 브랜치에서 분기하거나 병합 할 수 있어야합니다. 그러나 ... 어떻게? –

1

기본적으로 git-svn 추적 분기는 remotes/git-svn입니다.이를 사용하여 git svn fetch에 의해 가져온 변경 사항 위에 작업을 병합하거나 리베이스 할 수 있습니다.