2017-10-22 1 views
3

진단 정보를 공개하는 제품에 추가 된 몇 가지 기능이 있습니다. 이 정보가 프로덕션 환경에서 공개되어서는 안되기 때문에 지사는 마스터에 대한 몇 가지 커밋입니다.어떻게하면이 힘내 테스트 워크 플로우를 구현할 수 있습니까?

A-B-C-D-E (master) 
     \ 
      F-G (local_testing) 

로컬 훨씬 쉽게 FG 메이크업 테스트를 커밋합니다. 이제 기능을 추가하고 작동하는지 확인하려면 local_testing을 기반으로 새 지점 new_feature을 확인하십시오.

git checkout -b new_feature local_testing 
# Do work 
git commit -a -m "H" 

커밋 H은 필요한 기능을 추가합니다.

A-B-C-D-E (master) 
     \ 
      F-G (local_testing) 
      \ 
       H (new_feature) 

나는 대화하기 전에 F를 저지 H 커밋 이동 리베이스하고있다. 그런 다음 new_feature이 가리키는 커밋 객체를 새로운 H'으로 이동시키기 위해 하드 리셋을 수행합니다. 그래서 역사를 커밋

git rebase -i master 
git reset --hard H 

보이는 같은 :

A-B-C-D-E (master) 
     \ 
      H' (new_feature) 
      \ 
      F'-G' (local_testing) 
new_feature- master 그럼 난 빨리 감기

및 삭제 new_feature.

git checkout master 
git merge new_feature 
git branch -d new_feature 

이것은 약간 거추장스럽고 (특히 하드 리셋) 느껴집니다. 이 흐름을 구현하는 더 좋은 방법이 있습니까?

답변

1

하나의 해결책은 자식 cherry-pick을 사용하는 것입니다. 당신은 분기 마스터에서 직접이 git rebase로 스쿼시 수 있고, 여러 새로운 커밋이있는 경우는 H.

git cherry-pick <H> 

를 저지 적용 할 수 있습니다. git cherry-pick 명령을 여러 번 사용할 수도 있습니다.

+0

'git cherry-pick'도 사용합니다. 'new_feature'에 대한 커밋이 여러 개인 경우'git reset --soft HEAD ~ X' 명령으로 스쿼시 할 수 있습니다. 여기서'X'는 스쿼시 커밋 수입니다. – jackdbd

관련 문제