2016-10-06 2 views
0

여기이 페이지에 허용 대답을 시도 해 봤나 : How to merge the current branch into another branchmaster 브랜치의 현재 상태를 다른 브랜치에 복사하는 방법은 무엇입니까?

그러나 문제는 마스터가 필요한 변경 사항이 없습니다이다, 나는에 지점을 만든 : 내가하려고하면 git checkout -b mybranch

git push self mybranch:master

그것은 모든 것이 최신이라고 알려줍니다. 그러나 나는 그것을 안다. 다른 브랜치로 브랜치를 복사하여 마스터 브랜치의 현재 상태를 유지하고자한다. 그리고 그것은 다시는 결코 만질 수 없을 것입니다.

나는 장래에 master 브랜치에서만 분기 될 것입니다. 이 다른 지점은 결코 실제로 만질 수 없습니다. 하지만 필요할 때마다 해당 지점으로 전환하여 언제든지 다시 가져올 수 있도록 보관해야합니다 ...

새 Repo를 만들지 않고 마스터 분기를 복사하는 방법은 무엇입니까?

답변

1

answer by Zoli Szabo에서 언급했듯이 tags을 사용하면 절대 이동해서는 안되는 기록에 이벤트를 표시해야합니다. 태그를 만들려면 이름과 커밋을 지정하기 만하면됩니다. 커밋 해시 대신 지사 이름을 제공하면 태그는이 지사의 현재 팁 커밋을 가리 킵니다. 분기 업데이트

  • 포스 : git branch -f mybranch master을 다음 분기를 밀어 당신이 당신의 지점 마스터의 현재 상태를 반영 할 경우, 귀하의 질문에 대답 할 수 있지만

    git tag mytag branch 
    git tag mytag 123ab45ef 
    

    , 당신은 옵션의 소수를 가지고

  • 원격 저장소의 분기에 원하는 상태를 푸시 : git push origin master:mybranch (강제 업데이트가 필요한 경우 -f). 다른 사람에게 문제를 일으킬 수 있으므로 조심하십시오 ours 전략 (-s ours)으로 분기를 병합하여 원하는 상태로 새 커밋을 만듭니다. 그런 다음 원격 저장소로 이동합니다.

간단히 로컬 저장소를 업데이트하려면 분기를 병합하거나 (정확하게 질문하는 경우 빨리 감기가 필요함) 로컬 푸시를 수행하십시오.

  • 병합 git checkout master; git merge mybranch
  • 로컬 푸시 : git push . mybranch:master

푸시는 앞으로 병합의 반대의 일종이다 (표적 및 대상 분기 전환).

선택하십시오 :

+0

'git branch -f original : master' 이것은 나에게 유효한 분기'original : master'가 아니라 원래의 브랜치가 존재합니다. 'git branch -a'는 원본을 보여줍니다. –

+0

@ 솔로몬 클로슨 : 죄송합니다. 콜론은 거기에 있지 않았다고합니다. 공백 문자 여야합니다. – knittl

+0

고마워, 방금 태그를 사용 했으니 바라는대로 내가 원하는대로 할 것이다. –

1

역사에서 특정 지점을 표시하는 경우, 당신은 tags하지 "포기"가지를 사용해야합니다.

+0

동의하십시오. 태그는 커밋 체인이 활발히 개발되지 않았다는 것을 표현합니다. – Gregg

0

다른 커밋을 가리키는 두 개의 마스터 분기를 가질 수 없습니다. 분기는 하나의 커밋만을 가리 킵니다. 이 시점에서 master 브랜치가 있던 위치를 저장하려면, 그 위에 태그를 만들거나 새로운 브랜치를 만드십시오. 한 브랜치를 MYSUBDIR/master라는 이름으로 저장하고 다른 브랜치를 MYOTHERSUB/master라는 이름으로 저장할 수 있습니다.

'mySave/master'지점을 로컬 mybranch와 동일한 원격 'self'에 작성하십시오.

git push self mybranch:MySave/master 

물론 적절한 권한이 있다고 가정합니다.

git fetch self self/MySave/master 

하는 업데이트 '자기 : 가장 최근에 이렇게 얻기 위해,

git log --oneline --decorate -9 mybranch self/MySave/master 

'자기/MySave/마스터 '원격 추적 복사본입니다 : 당신과 함께 두 가지의 상태를 볼 수 있습니다/MySave/master '(해당 지역의'mybranch '가 아닌 경우)

관련 문제