git을 통해 svn-Branch를 삭제 하시겠습니까?
선택한 scm로 git을 사용하고 있지만 svn-repo를 사용해야합니다. 다음과 같이 svn-remote-branch를 만들 수 있습니다.
git svn branch the_branch
하지만 원격 브랜치를 어떻게 삭제할 수 있습니까?
현재 git-svn을 사용하여 SVN 브랜치를 삭제할 수 없습니다. 그러나 SVN을 사용하여 브랜치를 확인하지 않고도 쉽게 삭제할 수 있습니다. 그래서 간단히 입력
svn rm $URL/branches/the_branch
Subversion 브랜치를 삭제해도 git-svn 저장소에서 삭제되는 것은 아닙니다. (이것은 Subversion 브랜치를 삭제해도 정보가 손실되지 않기 때문에 의도적 인 것입니다. 반면 git 브랜치를 삭제하면 다음 git 가비지 콜렉션 이후에 그 존재를 잊게됩니다.) 따라서 git에서 원격 SVN 브랜치를 삭제하려는 경우 수동으로해야합니다.
git branch -D -r the_branch
rm -rf .git/svn/the_branch
OR
rm -rf .git/svn/refs/remotes/f8745/ (for newer versions)
Subversion 태그에 해당하는 git 브랜치를 삭제하려면 명령이 약간 다릅니다.
git branch -D -r tags/the_tag
rm -rf .git/svn/tags/the_tag
이것은 나를 위해 잘 작동했습니다. 감사합니다. 내 환경이 다른지 또는 최신 버전의 git에서 변경되었는지 확실하지 않지만 svn 브랜치 디렉토리는 .git / svn / refs / remotes /에 있습니다. 이는 원래 지침에서 찾을 수있을만큼 간단합니다. rm 명령 :
rm -rf .git/svn/refs/remotes/the_branch
태그를 많이 사용하지 않기 때문에 확실하지 않습니다.
Opps, 상위 답변은 2009 년에 작성되었습니다. 이제 원격 태그를 삭제하는 올바른 방법은
svn rm svn://dev.in/branches/ios_20130709150855_39721/
git branch -d -r ios_20130709150855_39721
2017 년 현재 git svn branch --delete
. ( -d
옵션은 있지만 신비 주의자입니다--destination
)
다른 답변에서 설명한대로 수동 단계는 다음과 같습니다.
- 커밋 메시지 인쇄 :
git log -1 $commit
- 커밋 메시지에서
git-svn-id: $url
줄을 찾습니다. - SVN 분기 제거 :
svn rm $url
이 단계를 자동화하기 위해 별칭을 만들었습니다.
[alias]
svn-rm-branch = "!f() { if git_svn_id=\"$(git log -1 --format=%B \"$@\" | grep -o '^git-svn-id:[^@]*')\" ; then svn rm --editor-cmd=\"$(git var GIT_EDITOR)\" \"$(echo $git_svn_id | cut -d' ' -f 2)\" ; else echo No git-svn-id in the message of the commit \"$(git rev-parse \"$@\")\" 1>&2; fi }; f"
참고 URL : https://stackoverflow.com/questions/1839606/delete-a-svn-branch-via-git
'Nice programing' 카테고리의 다른 글
Eclipse에서 디버깅하는 동안 대화 형 최상위 수준 (일명 "디스플레이 콘솔")에 어떻게 액세스합니까? (0) | 2020.12.01 |
---|---|
Maven : 공용 저장소에서 찾을 수없는 jar 포함 (0) | 2020.12.01 |
네임 스페이스 내에 클래스가 있는지 확인하는 방법은 무엇입니까? (0) | 2020.11.30 |
dplyr로 여러 회귀 모델 피팅 (0) | 2020.11.30 |
Xcode 6 오류 : "포함 된 바이너리의 번들 식별자에 상위 앱의 번들 식별자가 접두사로 붙어 있지 않습니다." (0) | 2020.11.30 |