2010-02-28 3 views
2

여러 로컬 커밋의 git-svn dcommit을 수행 할 수있는 확실한 방법이 Subversion에 1 커밋인지 알고 싶습니다.git에서 체리 피킹 후 1 커밋에서 SVN에 dcommit

내가 가진 상황은 우리 트렁크에서 유지 관리 지점으로 변경된 버그를 픽업하는 것입니다. 프로젝트 환경 설정은 파괴에서 1 커밋으로 커밋 될 버그 수정을하는 것이지만, 내 로컬 git에서 변경 사항의 기록을 참조 용으로 유지하고 싶습니다.

은 현재 내가 무엇을 할 것은해야 할 모든 체리 따기 지점 X에 다음 스쿼시 새로운 지점 Y 병합 않습니다. dcommit은 지점 Y에서 수행됩니다.

중간 분기를 사용하지 않고 더 좋은 방법이 있습니까?

+0

짧은 대답은 내가 로컬 자식에 커밋 기록을 보존하고 싶은, 내가 원래의 질문에서 언급 한 것처럼 NO – xenoterracide

답변

2

여분의 브랜치를 사용하지 않으면이 작업을 수행 할 수 없습니다. 당신이 dcommit 한 지점은 당신이 dcommit 한 후 SVN history의 history를 반영 할 것이다. 여러개의 커밋으로 원래의 잔인하지 않은 git 뷰를 보존하고 싶다면, 여분의 브랜치를 사용해야 할 것이다.

(그리고 그래,이 역시 사실이 아니다 좋겠어요)

-1

git reset --soft 또는 git rebase -i (맨 위 커밋이 아닌 경우)과 함께 스쿼시 할 수 있습니다.

예 : git reset --soft HEAD~4 && git commit -m 'Bug fixes'은 마지막 커밋을 4로 줄입니다.

+0

없습니다. 난 단지 Subversion 저장소에 1 커밋 싶어요. 당신의 대답은 내 질문을 해결하지 못합니다. –

+0

마지막에 어떤 사진을 찍고 싶습니까? SVN에 들어가는 각각의 커밋이 커밋 메시지에서 "git-svn-id"마크를 얻고 "git-svn-id"인 부모를 하나만 가질 수 있다고 생각해야합니다. git-svn의 "트렁크"에서는 SVN에있는 것처럼 기록을 볼 수 있습니다. 로컬 커밋 내역은 필연적으로 별도의 지점에 있습니다. –

관련 문제