개발관련/Git

Heroku : 다른 로컬 Git 브랜치를 Heroku / master에 푸시하는 방법

Rateye 2021. 11. 10. 10:43
728x90
반응형
질문 : Heroku : 다른 로컬 Git 브랜치를 Heroku / master에 푸시하는 방법

Heroku는 '마스터'를 제외한 모든 분기를 무시하는 정책을 가지고 있습니다.

나는 Heroku의 디자이너가이 정책에 대해 훌륭한 이유를 가지고 있다고 확신하지만 (저장 및 성능 최적화를 위해 추측하고 있습니다) 개발자로서 나에게 결과는 내가 작업하는 지역 주제 분기가 무엇이든간에 쉬운 방법을 원한다는 것입니다. Heroku의 마스터를 해당 로컬 토픽 브랜치로 전환하고 "git push heroku -f"를 수행하여 Heroku의 마스터를 덮어 씁니다.

http://progit.org/book/ch9-5.html 의 "Pushing Refspecs"섹션을 읽고 얻은 것은

내가 정말로 원하는 것은 "git push heroku"가 항상 위의 작업을 수행하도록 구성 파일에서이를 설정하는 방법입니다. local-topic-branch 를 현재 브랜치의 이름으로 바꿉니다. 누구든지 그것을 달성하는 방법을 알고 있다면 알려주십시오!

물론 이것에 대한주의 사항은 내가 해당 Heroku 앱 / 저장소에 푸시 할 수있는 유일한 사람인 경우에만 합리적이라는 것입니다. 테스트 또는 QA 팀은 다른 후보 브랜치를 시험해보기 위해 그러한 저장소를 관리 할 수 있지만, 주어진 날에 어떤 브랜치를 밀어 붙이는 지 모두 동의하도록 조정해야합니다.

말할 필요도없이 모든 것을 백업하기위한 이러한 제한없이 별도의 원격 저장소 (예 : GitHub)를 갖는 것도 매우 좋은 생각입니다. 나는 그 하나를 "origin"이라고 부르고 Heroku에 "heroku"를 사용하여 "git push"는 항상 모든 것을 origin으로 백업하고 "git push heroku"는 내가 현재있는 브랜치를 Heroku의 마스터 브랜치로 밀어 덮어 쓰도록합니다. 필요하다면.

작동할까요?

실험을 시작하기 전에 좀 더 경험이 많은 사람의 이야기를 듣고 싶습니다. 비록 제가 Heroku에서 더미 앱을 만들어서 실험 할 수 있다고 생각합니다.

가져 오기에 관해서는 Heroku 저장소가 쓰기 전용인지는 신경 쓰지 않습니다. 내 모든 작업의 백업 및 복제를위한 별도의 저장소 (예 : GitHub)가 여전히 있습니다.

각주 :이 질문은 Heroku에서 브랜치 전략을 사용하는 Good Git 배포 와 비슷하지만 완전히 동일하지는 않습니다.

답변

와일드 카드를 사용할 때는 refspec의 양쪽에 있어야하므로 +refs/heads/*:refs/heads/master 가 작동하지 않습니다. +HEAD:refs/heads/master 사용할 수 있습니다.

git config remote.heroku.push +HEAD:refs/heads/master

또한 git push를 사용 하여 직접 수행 할 수 있습니다.

git push heroku +HEAD:master
git push -f heroku HEAD:master
출처 : https://stackoverflow.com/questions/2971550/heroku-how-to-push-different-local-git-branches-to-heroku-master
728x90
반응형