2017-01-31 2 views
3

새 git 맨 처지에 가져 왔습니다.선형 master 브랜치를

내 태그는 자식 태그로 변환됩니다하지만 난이 자식 도로 라인이 있습니다 enter image description here

마스터에서 한 줄에 다시 모든 것을 가져올 수있는 방법이 있습니까를? 이처럼

:

enter image description here

사전에

덕분에 (내가 자식을 가진 초보자입니다)

답변

4

당신이해야 할 올바른 커밋에 태그를 이동하는 것입니다 (그 부모 커밋). 당신은 명령을 사용하여, 하나 하나 수동으로이 작업을 수행 할 수 있습니다

git tag -f v2.8.0 v2.8.0~1 

는 각 태그의 이름으로 v2.8.0를 교체합니다.

이동할 태그가 많은 경우 git tag -l > tags.txt을 사용하여 목록을 생성하여 tags.txt 파일에 저장할 수 있습니다. 텍스트 편집기에서 파일을 열고 수정하지 않으려는 태그를 제거하십시오 (질문에 게시 된 이미지에 현재 기록 행이 표시되는 경우 v2.8.2v2.8.3 만 적절하게 배치되고 파일에서 제거하십시오). 파일을 저장 한 다음 실행하십시오.

for t in $(cat tags.txt); do git tag -f $t ${t}~1; done 

파일의 모든 태그를 처리합니다.

업데이트 :
상류 저장소에 태그의 업데이트 된 위치를 추진하기 위해, 실행

git push --force --tags origin 

는 모든 원격 저장소의 이름 (들)과 origin 교체 당신이 원하는 곳 태그를 누르십시오.

+0

잘 작동합니다! 맨손 저장소에 새 태그를 푸시 할 생각이 있습니까? – barbuslex

+1

답변을 업데이트했습니다. – axiac

+0

감사합니다. 완벽하게 작동합니다. – barbuslex

1

git-svn아니요 리포지토리 또는 저장소 부분의 일회성 변환에 적합한 도구입니다. Git을 기존 SVN 서버의 프론트 엔드로 사용하려는 경우 훌륭한 도구이지만 일회성 변환의 경우 이 아닌git-svn을 사용해야하지만 svn2git은이 사용 사례에 훨씬 적합합니다.

화면 캡처에서 나는 e처럼 git-svn을 기반으로하는 도구를 가장 많이 사용했음을 알 수 있습니다. 지. 이러한 "태그 브랜치 (tag branches)"가 git-svn을 사용하는 단점 중 하나 인 nirvdrum svn2git.

svn2git이라는 도구가 많이 있습니다. 가장 좋은 도구는 https://github.com/svn-all-fast-export/svn2git의 KDE입니다. 그 svn2git 도구를 사용하는 것이 좋습니다. 내가 사용할 수있는 최선의 방법이며, 규칙 파일을 통해 할 수있는 일에 매우 유연합니다.

하나의 Git repo에 모든 SVN sub-repos를 통합하거나 SVN에서 여러 독립 Git 저장소로 프로젝트를 분할하여 기록을 통해 원하는 결과를 얻을 수 있도록 svn2git의 규칙 파일을 쉽게 구성 할 수 있습니다.

svneverever에서 http://blog.hartwork.org/?p=763까지의 기록은 Git으로 마이그레이션 할 때 SVN 저장소의 기록을 조사하는 훌륭한 도구입니다.

  • 역사는 훨씬 더 깨끗 재 구축 :


    비록 git-svn, 여기, 뛰어난 유연성 외에 대신 git-svn의 KDE svn2git을 사용하는 이유를 몇 가지 더 이유가로 시작하는 것이 더 쉽습니다 svn2git (올바른 것이 사용 된 경우) 이것은 특히 분기 및 병합 등이 포함 된 더 복잡한 기록의 경우입니다.

  • 태그는 실제 태그이며 Git에서 분기하지 않습니다.
  • git-svn과 함께 사용하면 태그에 빈 커밋이 추가되어 분기에 포함되지 않으므로 기본으로 --tags을 지정하기 전까지는 보통 fetch이 가져 오지 않습니다. 페치 된 분기를 가리키는 태그도 기본적으로 가져옵니다. 적절한 svn2git 태그가 자신이 속한 곳이다 사용하면 SVN에서 레이아웃을 변경 한 경우
  • 은 쉽게, svn2git와이를 구성 할 수 있습니다 git-svn 당신이 svn2git와 역사 결국
  • 을 잃어 버리게된다 당신은 쉽게 여러 Git 저장소에 하나 명의 SVN 저장소를 분할 할 수 있습니다
  • 또는 변환이 gazillion 배 빠른 올바른 svn2git와와보다 쉽게 ​​
  • 하나 개 Git 저장소에 같은 SVN 루트에 여러 SVN 저장소를 결합 git-svn

git-svn이 더 나으며 KDE svn2git이 우월한 데는 여러 가지 이유가 있습니다. :-)

관련 문제