2013-11-02 1 views
0

그래서 자식에 두 개의 분기가 있습니다 : developrelease입니다. 지금까지 develop 브랜치를 사용하고 있습니다. 방금 release 지점에서 사용할 수있는 develop 지점에 커밋을했습니다. 어떻게해야합니까? 나는 여기에서 조금 혼란 스럽다. 내가, 내가 체크 아웃을 할 단지 수) git checkout -b releaseGit에서 분기 간 올바른 전환

2 를 수행 develop 분기로 다시 전환하려면 때

1)이 자동으로 오른쪽 발생합니까? 또는 병합을 수행해야합니까?

답변

2

하나의 브랜치에서 다른 브랜치에서 커밋을 할 수있는 몇 가지 옵션이 있습니다. 선택할 수있는 옵션은 나중에 내역을 표시하는 방법에 따라 다릅니다. develop의 팁과 release의 이전 팁 :

  1. 병합는 두 부모가있는 release 분기에 커밋이 생성됩니다. releasedeveloprelease의 모든 작업을 처리합니다. developrelease으로 병합하려면 깨끗한 작업 복사본이 있어야하며 git checkout release을 실행하고 git merge develop을 실행하십시오.
  2. cherry-pickdevelop 위의 각 커밋을 release 위로 보낼 수도 있습니다. Cherry-Picking은 사용자가 지정한 커밋에서 수행 된 정확한 변경을 수행하는 release에 대한 새로운 커밋을 만듭니다. 이것은 develop에서 많은 작업을 한 경우 유용하지만 한두 가지만 가져 왔으면 좋을 것입니다. 체리를 선택하려면 git log을보고 원하는 커밋의 이름을 지정하는 sha 해시를 복사 한 다음 git checkout release을 실행하고 git cherry-pick <commit hash>을 실행합니다.
  3. 큰 커밋 범위를 이동할 필요가있는 경우 rebase --onto을 사용할 수 있습니다. 좀 더 고급이지만, 호기심이 있다면 read about it 수 있습니다.

    1. 아니 :

    는 후속 질문에 대답하세요! git checkout의 일반적인 목적은 이고 작업 복사본은 이름이 인 것처럼 보이게합니다. git checkout release을 실행하면 작업 복사본의 실제 파일이 마지막으로 release으로 커밋 된 상태로 변경됩니다. Checkout은 기존 분기를 변경하지 않습니다. 같은 라인을 따라

  4. 을 다시 전환, 모두 당신이 필요로하는 것 (. checkout -b 만들고 한 번에 지점을 체크 아웃 할 수있는 편리한 바로 가기입니다 또한, 당신은이 -b 이미 존재 release 경우 필요하지 않습니다) 할일은 다시 git checkout develop입니다.

+0

자세한 설명 주셔서 감사합니다! 훨씬 도움이 :) – rgamber

0

한 분기에서 다른 분기로 변경 사항을 가져 오려면 병합을 수행해야합니다.

+0

또는 cherry-pick 또는 유사한 조작, 예. – torek