2010-04-27 2 views
2

마스터가 체크 아웃 된 프로덕션 웹 사이트와 피쳐 지점에서 개발중인 개발 웹 사이트가 있습니다.라이브 업데이트와 함께 git 기능 분기를 사용하고 마스터에 다시 병합하는 방법?

기능 마스터에 병합됩니다

나는 개발 사이트에서이 작업을 수행 :

(currently on the new-feature branch) 
$ git commit -m"new feature finished" 
$ git push 
$ git checkout master 
$ git merge new-feature 
$ git push 

그리고 생산 현장에

가 :

(currently on master branch) 
$git pull 

이 나를 위해 작동합니다. 그러나 때로는 고객이 전화를 걸고 웹 사이트에서 작은 변화가 필요할 때가 있습니다. 마스터 및 푸시 마스터에서 제작할 수 있으며 정상적으로 작동합니다.

(On production on branch master) 
$ git branch quick-feature 
$ git checkout quick-feature 
$ git push origin quick-feature 
$ edit files... 
$ git add . 
$ git commit -m"quick changes" 
$ git push # until this point the changes are live 
$ git checkout master #now the changes are not live anymore GAP 
$ git merge quick-feature # now the changes are live again 
$ git push 

내가이 워크 플로의 명확한 의도를 만들 수있는 희망 : 나는 작은 변화를위한 기능 분기를 사용할 때

는하지만 간격을 얻을. 더 나은 것을 권할 수 있습니까? 여전히 빠른 기능 지점에있는 동안

당신의 빠른 기능 지점 마스터의 상단에 개발 된 경우
+0

당신이 말하는 격차는 꽤 작습니다. 간단한'$ git checkout master && git merge quick-feature'로 최소화 할 수 있습니다. – meagar

답변

1

, 마스터 분기를 재설정 할 수 있습니다 :

git branch -f master 

그 방법을 일시적으로 제거 checkout master을 피하기 작업 트리의 빠른 기능. 당신이 마스터로 다시 전환 할 때

x--x--x (master) 
     \       => x--x--x--f--f--f--f (master, quick-feature) 
     -f--f--f (quick-feature) 

또 다른 해결책은, 계정으로 마스터의 현재 상태를 복용하는 동안 quick-feature 수정을 유지할 수 있습니다 병합

git checkout --merge master 

을 요청하는 것입니다.

+0

감사합니다. 그림이 정말 도움이됩니다. - karthorwald - aka – user89021

+0

두 번째 버전 인 "git checkout --merge master"에서 git이 실제로하는 일은 무엇입니까? 만약 내가 자식 이었다면 나는 커튼 뒤에 "git branch -f master"라는 버전 1을 만들었 을까? - karthorwald - aka – user89021

+0

@ user89021 :'quick-feature '가 수행되는 동안'master'가 약간의 진화를 가지고 있다면 체크 아웃 단계가 필요합니다. 'master '에 진화가 없다면,'quick-feature' HEAD에서'master'를 단순히 리셋 할 수 있습니다. – VonC

0

"제작 변경"은 분명히 잘못되었으므로 그렇게해서는 안됩니다.

올바른 워크 플로우는 다음과 같습니다 - 시험/(STABLE) 사이트/샌드 박스/서버에서 체크 아웃 마스터/어떤 가 - 변경을 커밋 마스터로 병합

의 생산

에 배포 - 변경, 테스트 변화 을 어떤 가지를위한거야. git에서 후크를 사용하여 작업 흐름을보다 자동화 할 수 있습니다.이 도구는 마스터 또는 다른 전용 분기 일 수있는 특정 분기로 프로덕션 환경에서 자동으로 배포합니다.

+0

네, 그걸로 알고 있습니다. 그것은 나쁜 습관이다. 나는 그러한 경우에 세 번째 환경을 설정해야한다. - karlthorwald - aka – user89021

관련 문제