2013-05-31 3 views
20

모두가 SVN을 중앙 서버로 사용하는 프로젝트에서 일하고 있습니다. 모두가 해당 서버에서 수행 한 변경 사항을 적용합니다. 로컬로 Git을 사용하고 싶습니다. 저는 git svn에 새로 왔습니다. 나는 git svn clone -r HEAD https://svn.repo/app/branch과 함께 저장소의 git svn clone을했는데, git을 통해 업데이트를하고 싶다.Git-SVN : 중앙 SVN 서버에서 Git Repo 업데이트

'git pull like'명령이 필요하지만 특정 버전의 SVN 서버 repo에서 가져 오기를 원합니다. SVN 서버 레포의 특정 개정판에서 패치를 가져 오는 'fetch like'명령이 있습니까?

내 복제 된 프로젝트에 .svn 폴더가없고 git remote은 아무 것도주지 않습니다. 그러나 나는 git config -l을했는데 SVN 서버의 URL을 얻었습니다. 그래서 어떻게 든 SVN 서버에 연결됩니다. 나는 가져 오거나 당기는 방법을 모른다.

감사합니다.

답변

37
힘내 통해 서브 버전 저장소에서 작업

가장 좋은 방법 :

  1. git svn init -s https://svn.repo/app/ myrepohttps://svn.repo/app/ 아래의 repo 표준 /trunk, branchestags 하위 디렉토리
  2. 더 이상 커밋이 없을 때까지 myrepo에 git svn fetch를 수행 포함되어 있음을 가정 (꽤 많은 시간이 걸릴 수 있으며 때로는 Windows에서 중단됩니다.) git checkout -b trunk remotes/trunk

를 통해 특정 서브 지점 또는 트렁크 그럼 당신은 단순히 모든 서브가 포함 된 힘내 리포으로, 검색 해킹 커밋 할 수

  • 체크 아웃 커밋 및 지점.
    • 가 SVN에 해당 지역의 커밋 만 git log을 통해 역사를 찾아 볼 필요가 특정 서브 버전 버전으로 이동하려면 git svn dcommit

    를 사용 추진하기 위해 git svn rebase

  • 를 사용 SVN에서 새로운 커밋으로 끌어와 Subversion 커밋을 미러링하는 커밋을 검색합니다. 커밋 메시지의 git-svn-id: 라인에서 Subversion 버전을 쉽게 발견 할 수 있습니다. 해당 버전을 명시 적으로 체크 아웃하려면 git checkout <commithash>을 사용하십시오.

  • 10

    좋은 시작 :

    하는 새로운 SVN이 해당 지역의 repo에 커밋 가져올 수 : git svn rebase

    밀어하려면 해당 지역의 SVN에 커밋 : git svn dcommit

    당신은 아마 git stash를 사용해야하고 git stash pop, 작업 복사본에 커밋되지 않은 변경 사항이있을 때 위의 두 명령을 사용하십시오.