답변:
나는이 질문에 얼마 전에 대답 한 것을 알고 있지만 그것을 읽은 후에는 특정 git svn branch 명령의 예제를 추가하고 일반적인 워크 플로우와 관련시키는 데 도움이 될 수 있습니다.
kch 답변처럼을 사용하십시오 git svn branch
. 전체 예는 다음과 같습니다 ( -n
건조 테스트의 경우 참고).
git svn branch -n -m "Branch for authentication bug" auth_bug
이것이 잘되면 서버는 다음과 같은 대답으로 응답합니다.
복사 https://scm-server.com/svn/portal/trunk을 에 r8914에서 https://scm-server.com/svn/portal/branches/auth_bug ...
-n
스위치가 없으면 서버는 다음과 같은 것을 추가합니다.
가능한 지점 발견 : https://scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug , 8914
발견 된 브랜치 부모 : (refs / remotes / auth_bug)
d731b1fa028d30d685fe260f5bb912cbf59e1971
do_switch가있는 다음 부모
부모 r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8을 성공적으로 따름
(참조 / 원격 / auth_bug)
그것의 가장 좋은 부분은 다음과 같이 원격 브랜치를 기반으로 로컬 브랜치를 만들 수 있습니다.
git checkout -b local/auth_bug auth_bug
즉, "체크 아웃하고 이름이 지정된 로컬 브랜치를 생성 auth_bug
하고 원격 브랜치 (마지막 매개 변수)를 따르도록합니다."auth_bug
테스트는 해당 지역의 지점은 사용하여 해당 원격 지점에 작동하는지 dcommit
와 --dry-run
( -n
) :
git svn dcommit -n
그리고 SVN 서버는 새로운 브랜치 이름으로 응답해야합니다 :
git co
와 git checkout
예는 사람을 위해 일을 할 수 있도록
git-svn branch
명령 에는 까다로운 부분 이 있습니다. 이런 방식으로 새 분기를 만들려면 온라인 상태 여야합니다. 오프라인에서 다음을 수행 할 수 있습니다. 1. git checkout -b foobar
hack-hack-hack 3 git commit -m "Done foobar"
.. 그리고 온라인 1. 수행하여이 변경을 누르면 git svn branch foobar
2. git branch --set-upstream foobar remotes/foobar
3. git svn dcommit
.
git checkout -b foobar-new remotes/foobar
. 3. git checkout foobar
4. git rebase foobar-new
5. 확인 분기 이제 SVN 브랜치에 커밋하기 위해 테스트합니다. git svn dcommit --dry-run
6. 마지막으로 실제로 커밋 git svn dcommit
7. 제거 임시 지점git branch -D foobar-new
@kch I just (2008 년 12 월 7 일) git의 v1.6.1-rc1 태그를 컴파일했으며 git svn branch 명령과 관련 문서가 포함되어 있습니다. 따라서 git v1.6.1 릴리스에는이 명령이 포함되어야합니다.