git를 scm으로 사용하지만 svn-repo를 사용해야합니다. 나는이 같은 SVN - 원격 지점 만들 수 있습니다git을 통해 svn-branch를 삭제 하시겠습니까?
git svn branch the_branch
을하지만 내가 어떻게 원격 지점을 삭제할 수 있습니까?
git를 scm으로 사용하지만 svn-repo를 사용해야합니다. 나는이 같은 SVN - 원격 지점 만들 수 있습니다git을 통해 svn-branch를 삭제 하시겠습니까?
git svn branch the_branch
을하지만 내가 어떻게 원격 지점을 삭제할 수 있습니까?
현재 git-svn을 사용하여 SVN 분기를 삭제할 수 없습니다. 그러나 체크 아웃하지 않고도 SVN을 사용하여 브랜치를 삭제하는 것은 쉽습니다. 그래서 단순히
svn rm $URL/branches/the_branch
는 서브 버전 분기를 삭제하면 그것이 자식 - svn을 저장소에서 삭제 될 수 없 사오니, 이용에 참고하여주십시오 입력합니다. (이것은 의도적인데, Subversion 브랜치를 삭제해도 정보가 손실되지 않는 반면 git 브랜치를 삭제하면 다음 git 가비지 콜렉션에 따라 그 존재를 잊어 버리게되기 때문입니다.) 그래서 원격 SVN 브랜치를 git에서 삭제하려면 저장소, 수동으로 할 필요가 :
git branch -D -r the_branch
rm -rf .git/svn/the_branch
OR
rm -rf .git/svn/refs/remotes/f8745/ (for newer versions)
가 서브 태그에 해당하는 자식 지점을 삭제하려면 명령은 약간 다릅니다 :
git branch -D -r tags/the_tag
rm -rf .git/svn/tags/the_tag
이 감사, 나를 위해 잘 작동. 내 환경이 다르거 나 더 최신 버전의 자식에서 변경되었지만 svn 브랜치 디렉토리가 .git/svn/refs/remotes /에 있으며 원래 지침에서 찾을 수있을 정도로 단순하므로 rm 명령 :
rm -rf .git/svn/refs/remotes/the_branch
태그를 많이 사용하지 않으므로 잘 모르겠습니다.
OPPS, 상단 대답은 지금 2009 년에 원격 태그를 삭제하는 올바른 방법을 2017으로
svn rm svn://dev.in/branches/ios_20130709150855_39721/
git branch -d -r ios_20130709150855_39721
그것은 강제로 삭제하지 않는 -D 대신 -d를 사용하는 것 외에 다른 최상위 응답과 다릅니다. –
@JeffSchumacher 그는 최근에 답변을 업데이트했습니다. – alswl
있다 썼다, 우리는 여전히 git svn branch --delete
이 없습니다. (-d
옵션이 있지만 for mystic --destination
입니다) 다른 답변에서 설명한 바와 같이
, 수동 단계는 다음과 같습니다, 커밋 메시지에서 git log -1 $commit
git-svn-id: $url
라인svn rm $url
다음 단계를 자동화하기 위해 별칭을 만들었습니다.
[alias]
svn-rm-branch = "!f() { if git_svn_id=\"$(git log -1 --format=%B \"[email protected]\" | 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 \"[email protected]\")\" 1>&2; fi }; f"
Stephen C가 다른 답변에서 추측 한 것처럼 .git/svn의 트리 구조는 git-svn 구성 설정 방법에 따라 다릅니다. 즉, 가장 일반적인 구성의 경우 삭제할 올바른 하위 디렉토리를 찾아 내서는 안됩니다. – ipmcc
'git gc'또는'git svn gc'는 사용자가 추측하지 않고 올바른 파일을 검색하고 삭제할 수 있습니까? –
Ben : "rm -rf"명령은 브랜치에 대한 git-svn 메타 데이터를 삭제합니다. 이 정보는 "git gc"또는 "git svn gc"에 의해 정리되지 않습니다. – mhagger