필요한 경우 git + svn (둘 다 원격)
개요
목표는 일상적인 커밋에 git을 사용하고 배포 직전(또는 필요할 때) svn을 업데이트하는 것입니다. 인터넷에서 git과 svn을 나란히 실행하는 방법에 대한 많은 자습서를 찾았지만 로컬에서 git을 사용하고 여전히 원격 svn에 커밋하는 방법에 집중합니다. 즉, 팀과 함께 git을 사용할 수 없으며 이 경우 git은 개인 도우미일 뿐입니다. 그러나 원격 git 및 원격 svn을 갖고 동기화할 수 있기를 원합니다.
결국 우리는 2개의 워크플로우를 가지게 될 것입니다.
기능 흐름 - 일상적인 프로그래밍을 위한 프로세스입니다. 버그를 수정하거나 새 기능을 개발하기 위해 마스터 브랜치에서 새 브랜치를 생성할 수 있으며 마지막에 변경 사항을 다시 마스터 브랜치에 병합할 수 있습니다. 이 작업 흐름은 svn과 분리될 수 있으므로 git에서만 수행됩니다.
동기화 흐름 - 이 흐름은 git과 svn 간의 변경 사항을 동기화하기 위한 것입니다. 이 과정을 말로 표현하기는 쉽지만 실제로 작동시키기는 훨씬 더 어려웠습니다. 간단히 말해서 svn에서 모든 변경 사항을 가져오고 git master 브랜치에서 모든 변경 사항을 가져옵니다. 그것들을 함께 혼합하고 현재 소스 코드로 둘 다(git master 브랜치 및 svn) 업데이트합니다. 쉽죠?
설정
git 원격 저장소와 svn 원격 저장소가 실행 중이라고 가정합니다.
git 저장소
git clone https:\\www.yourgit.com\path\to.git
를 복제하여 시작하겠습니다. 이제 .git/config 파일을 열고 다음 행을 추가하십시오.[svn-remote "svn"]
url = https://www.yoursvn.com/url
fetch = you_can_fetch_some_subdirectory_from_svn
이것은 svn이라는 새로운 원격을 생성하고 git은 이것이 svn 원격이라는 것을 알게 될 것입니다. git-svn에 대한 전체 설명서를 찾을 수 있습니다. 그게 다야. 이제 모두 설정되었으므로 동기화 프로세스를 살펴보겠습니다.
동기화
귀하와 귀하의 팀원은 git 분기로 새로운 기능을 개발하고 버그를 수정합니다. 풀 요청을 생성하고 모든 변경 사항을 마스터 브랜치에 병합할 수 있습니다. 그러나 모든 git 변경 사항을 svn과 동기화할 때가 올 것입니다. 팀에서 한 사람이 이 작업을 수행할 수 있어야 합니다. 다음은 svn과 변경 사항을 동기화할 때 따르는 단계입니다.
bridge
분기를 사용하여 svn 변경 사항을 가져옵니다. Bridge 분기는 로컬이어야 하며 git remote에 푸시하지 마십시오.checkout bridge
git svn rebase
git checkout -b release/<id>
git merge master
If you encounter a conflict while merging, that means somebody changed something in svn and also in git and git cannot solve the issue. Resolve conflicts the same way as you would in standard git merge conflict scenario and then run
git add -A
andgit commit -m "merge master"
.
git svn dcommit
Now is the right time to push release branch to git remote, but this step is optional
git push origin release/<id>
git checkout master
git merge release/<id>
git push origin master
보시다시피 이 일련의 단계는 누군가가 여전히 svn을 사용하고 svn 저장소에 변경 사항을 커밋하지만 일부 사람들은 git을 사용하는 특수한 경우도 해결할 수 있습니다. svn에서 모든 변경 사항을 가져와 릴리스 브랜치로 옮길 때 달성됩니다.
Reference
이 문제에 관하여(필요한 경우 git + svn (둘 다 원격)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pipan/git-svn-both-remote-in-case-you-need-it-1ac5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)