2016-10-26 8 views
0

내가 설정 Gitlab 내가 여기에 언급 된 워크 플로우를 수행하기 위해 노력하고있어 한 커밋 master 지점의 commit A만을 production 지점과 병합하도록 요청되었습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

git cherry-pick 명령을 사용해야합니까? cherry-pick으로 버전 기록을 잃어 버릴 것을 읽었습니다.

master 분기의 이전 커밋 중 하나를 분기로 production 분기로 병합해야하는 상황에서 어떻게 처리해야합니까?

나는 이것에 집착하고있다. 어떤 도움이라도 대단히 감사합니다.

감사합니다,

업데이트 : 마스터 지점에서 나는 특정 커밋을 밀어 수 있습니다 git push <remotename> <commit SHA>:<remotebranchname>

여기

찾을 답 : How can I push a specific commit to a remote, and not previous commits?

+0

A와 X 사이에는 어떤 것이 있습니까? – max630

+0

아무 것도. x는 프로덕션 지점에 병합 된 최신 커밋이며 프로덕션 서버에 배포됩니다. 사실 저의 저장소 커밋에서 A는 작은 기능을 나타냅니다. 그것은 완료되었지만 생산에 몰두하지 않았고 다른 기능들에 대한 작업을 계속했습니다. 이제는 피쳐 A를 프로덕션에만 적용하려고합니다. –

+0

그러면 A 커밋을 병합 할 수 있습니다. 사실, 주어진 대답은 바로 이것을 암시합니다. – max630

답변

1
특별히 선택에서 변경을 원하는 경우

체리 따기는 실행 가능 커밋. 적용해야하는 커밋이 순차적으로 발생하지 않은 경우에 가장 유용합니다. 개인적으로는 마스터/프로덕션 지점에서이 작업을 수행하지 않는 것이 좋지만 장기간 릴리스 전략은 좋지 않습니다.

내 충고는 Git Flow에 기반하고 있습니다. GitLab의 접근 방법과는 약간 다릅니다.

실제 릴리스 인 경우 릴리스 분기 워크 플로를 따르는 것을 고려하십시오. 여기서는 커밋 A에서 릴리스 분기를 만든 다음 프로덕션으로 병합합니다.

일부 버그가 있거나 커밋을 필요로하는 핫픽스 (체리 피킹이 필요함)가있는 경우 프로덕션 지점에서 핫픽스 분기를 만들고 체리 - 먼저 해당 분기에 필요한 커밋을 선택한 다음 테스트를 수행 할 수 있습니다. 최종 합병을 생산으로 되돌립니다. 해당 분기에 추가 변경 또는 커밋이 적용된 경우 개발 분기가 무엇이든 상관없이 병합되어야합니다.