Git-svn : 새 브랜치 / 태그 생성 및 푸시?
-s
( git svn clone http://server/repo -s
) 옵션 과 함께 git-svn을 사용하여 SVN 저장소를 복제 한 후 어떻게 브랜치 또는 태그를 생성하고 dcommit
ing 시 저장소의 관련 브랜치 / 태그 디렉토리로 푸시 합니까?
예를 들어; git을 사용하여 foobar
로컬 에서 브랜치 를 만들려면 ( git checkout -b foobar
) git-svn 이 서버에서 브랜치를 만들도록 하려면 ( http://server/repo/branches/foobar
) 어떻게해야합니까?
Git 1.5.5.6을 사용하고 있습니다.
참고 :
아래 허용 된 방법 은 방법 이 없기 때문에 Git 1.5.5.6에서 작동하지 않습니다git svn branch
. 나는 여전히 svn으로 직접 작업하는 것을 포함하지 않는 해결책을 찾고 있습니다.
이 튜토리얼 에서 모든 핵심 세부 사항을 읽을 수 있지만 요점은 기본적으로 다음과 같습니다.
$ git svn branch -m "Topic branch" my_topic # Create SVN branch called "my_topic"
$ git checkout --track -b my-topic remotes/my_topic # Create the Git branch for "my_topic"
# Hack hack hack...
$ git svn dcommit --dry-run # Make sure you're committing to the right SVN branch
$ git svn dcommit # Commit changes to "my_topic" branch in SVN
Subversion 브랜치가 존재하기 전에 로컬 브랜치를 생성했고 이제 로컬 브랜치를 Subversion 브랜치로 푸시하려는 경우 다음을 수행 할 수 있습니다.
로컬 브랜치에 할당 된 svn 브랜치 개정을 얻습니다.
$ git svn info
출력에서 URL
field는 현재 svn 분기 경로이고 Revision
field는 subversion 개정 번호입니다.
로컬 브랜치를 생성 한 개정에서 svn 브랜치를 생성합니다.
$ svn cp http://svn-repo/my_app/trunk@123 http://svn-repo/my_app/branches/feature1
git repo가 그것에 대해 알 수 있도록 새 svn 브랜치를 가져옵니다.
$ git svn fetch
이제 svn 브랜치가 git repo에 원격으로 추가되어야합니다. $ git branch -a * feature1 master remotes/feature1
이 시점에서 리모컨은 여전히 트렁크입니다. 로컬 분기가 새 원격 분기를 가리켜 야합니다. 원격 브랜치에서 로컬 브랜치를 리베이스하여이를 수행 할 수 있습니다. $ git rebase remotes/feature1
이제 로컬 브랜치가 원격 브랜치를 참조하므로 변경 사항을 커밋 할 수 있습니다. 먼저 테스트 실행을 수행하여 변경 사항이 원격 브랜치에 들어갈 것이라는 확신을 가지십시오. $ git svn dcommit --dry-run Commiting to http://svn-repo/my_app/branches/feature1
이제 원격 지점에 변경 사항을 커밋 할 수 있습니다. $ git svn dcommit
대부분의 방법은 먼저 Subversion을 분기 한 다음 원격 분기를 추적하는 로컬 분기를 생성하도록 알려줍니다. 그러나 나는 종종 내 로컬 브랜치가 원격 브랜치를 추적해야하는지 여부를 미리 결정하지 않습니다. 종종 로컬로 분기하고 원격 분기로 푸시 할 의도없이 변경합니다. 나중에 로컬 브랜치를 원격 브랜치로 커밋하기로 결정하면 위의 단계를 수행합니다.
다른 git 브랜치에 이미 가지고있는 것들로부터 최근에 생성 된 브랜치로 리베이스해서는 안된다는 점을 지적하고 싶었습니다. git svn dcommit은 나중에 트렁크로 푸시합니다. 적어도 그것은 나에게는 문제였습니다.
대신, 이전 git 브랜치에서이 새로운 svn 브랜치로 변경 사항을 가져 오려면 예를 들어 cherry-pick을 사용하십시오.
참조 URL : https://stackoverflow.com/questions/2490794/git-svn-create-push-a-new-branch-tag
'IT Share you' 카테고리의 다른 글
jConsole을 사용하여 원격 Tomcat JMX 인스턴스 연결 (0) | 2021.01.06 |
---|---|
CSS를 사용하여 HTML 텍스트 영역에서 고정 폭 글꼴을 사용하도록 강제 (0) | 2021.01.06 |
Apache2 서버에서 로그 수준 디버그를 활성화하는 방법 (0) | 2021.01.06 |
window.variable 또는 var를 사용해야합니까? (0) | 2021.01.06 |
HAML에서 요소의 인라인 스타일을 설정하는 방법 (0) | 2021.01.06 |