2013-09-29 4 views
10

큰 Rails 프로젝트를 처음으로 Heroku에 배포하려고 시도했지만 Heroku 컴파일 과정에서 문제가 발생하여 no way of knowing what이 발생했습니다.이전 커밋을 Heroku에 배포하는 방법

이제 우리는 B 단계를 계획 할 것입니다. B 단계는 커밋 체인을 따라 가며 Heroku에 맞서기위한 각 단계를 테스트합니다. 어느 시점에서 컴파일 할 수 없게 될 때까지 테스트합니다. (예,이 시점에서 내가 생각해내는 것이 최선의 방법입니다.)

그래서 프로젝트를 로컬에서 복제하고 일부 오래된 커밋을 체크 아웃하고 heroku로 푸시한다고 생각했습니다. 그러나 그 때 나는 주인 이외에 무엇이든지에서 영웅에게 밀면, 앱을 만들지 않는다는 것을 발견했다 ?? 대신 그것은 말합니다 : "빌드를 건너 뛰는 비 마스터 브랜치에 푸시."

이제 내 나쁜 계획조차도 비 스타터입니다. 나는 여기서 휴식을 찾고 있습니다. 어떤 일을하려고하는지에 대한 아이디어가 있습니까?

답변

11

그것은 당신이 마스터에서 밀어 경우 마스터 을 밀어 경우 Heroku가 단지 구축 할 것입니다 오히려 Heroku가 만 빌드하는 것이 아니다. 그냥

git push heroku 

을 할 경우, 당신은 아마 Heroku가에 같은 이름 (정확한 기본 동작을 구성 할 수 있습니다) 하나에 해당 지역의 지점을 추진하고있다. 특히 끝으로 예 - 당신은 이미 my_local_branch에 체크 아웃하는 경우가 documentation for git push를 참조

git push heroku HEAD:master 

을 사용할 수,

git push heroku my_local_branch:master 

와 Heroku가 마스터에 다른 지역 지점에서 밀거나 수 도움이 될 수 있습니다.

당신은 아마 또한 푸시 강제로 -f를 사용해야합니다 :

git push -f heroku my_local_branch:master 
+0

굉장한 @ 매트 - 그냥 필요한 것. 그리고 나는 방금 heroku docs (https://devcenter.heroku.com/articles/multiple-environments#advanced-linking-local-branches-to-remote-apps)에 설명 된 것을 발견했습니다. 질문 : 왜'-f' 강제로해야합니까? – Yarin

+0

@Yarin 이미'master'에있는 것보다 이전 커밋을 푸시하려고한다면, git는 보통 당신을 멈추게 할 것입니다. "-f"를 사용하여 "예. 실제로 그 이후의 커밋을 덮어 쓰는 (그리고 아마도 잃을) 것을 의미합니다"라고 말할 필요가 있습니다. – matt

+0

나에게 감사의 말을 전한다. – Yarin

12

대신 코드에서 확인하는 여러 단계의 자식 프로세스의 Heroku가 함께 원하는 결과를 달성하기 위해 많은 쉽게, 그리고 밀어 그것. 이렇게하면 git 기록을 깨끗하게 유지할 수 있습니다.

$ heroku releases 
$ heroku rollback v11 
+0

더 나은 해결책에 대한 설명을 추가하시오. – StormeHawke

+2

나는 전에 생각한 적이 없었던 커밋을 배포하는 방법에 대해 의문을 제기했다. 이미 Heroku에 배포 된 커밋으로 롤백하는 방법에 대한 솔루션을 제공하고 있습니다. – AzaFromKaza

관련 문제