코드 변경없이 Heroku 앱 재배포


88

.NET을 사용하여 이상적으로 수행 될 Heroku 앱을 배포하고 싶습니다 git push -u heroku master. 그러나 이것은 마스터로 푸시 할 보류중인 커밋이있는 경우에만 작동합니다.

푸시 할 항목이없는 상태에서 앱을 재배포하려면 어떻게해야합니까? 나는 시도했지만 git push -u heroku master -f여전히 똑같은 것을 얻습니다.

Branch master set up to track remote branch master from heroku.
Everything up-to-date

PS : 기존 앱도 유지하고 싶습니다. 즉,이 답변을 사용할 수 없습니다. https://stackoverflow.com/a/22043184/968442


3
이것은 XY 문제 처럼 들립니다 . 동일한 코드를 다시 배포하여 무엇을 달성하고자합니까?
Chris

1
재배포 할 가치가 있지만 커밋이없는 몇 가지 구성 변수를 변경 한 경우
nehem dec.

1
구성 변수를 설정 하면 애플리케이션이 다시 시작됩니다. 재배포 할 필요없이 적용됩니다. 더 자세하게 얘기해 주 시겠어요?
Chris

2
불행히도 내가 제거한 configvar는 heroku 배포 논리에 연결된 DISABLE_COLLECTSTATIC=1다른 Django 명령을 호출해야하는 였습니다 manage.py collectstatic.
nehem dec

답변:


139

일반적으로 구성 변수를 설정하면 응용 프로그램이 다시 시작됩니다. 대부분의 경우이 작업을 수행 한 후 다시 배포 할 필요가 없습니다.

새 배포를 실제로 트리거해야하는 경우 비어있는 새 커밋을 추가 한 다음 Heroku에 다시 푸시 할 수 있습니다.

git commit --allow-empty -m "Trigger Heroku deploy after enabling collectstatic"
git push heroku master

새로운 빈 커밋은 일반 커밋입니다. 해시, 작성자, 타임 스탬프 등이 있습니다. 부모와 동일한 트리를 갖게됩니다. 이로 인해 Heroku가 이전 커밋과 동일한 코드를 사용하여 앱 슬러그를 다시 빌드해야합니다.

조금 어색하지만 작동합니다.


충분히 공평하게 들리고 일을합니다. 이제 저장소 ( .git)를 백업 / 복원 하여이 커밋을 github에서 숨기고 싶습니다 .
nehem

@itsneo, 나는 귀찮게하지 않을 것입니다. 추악한 커밋이지만 이전 커밋 위에 계속 코드를 작성하면 다음에 Heroku에 강제로 푸시해야합니다. 이 필요한 때로는 될 수 있지만 그건 ...로 얻을 수있는 좋은 습관이 아니다
크리스

git commit --allow-empty내가 Everything up-to-dateHeroku로부터 받고 있어도 ...
Benny Neugebauer

@BennyNeugebauer, 당신의보고하시기 바랍니다 git log. 푸시하기 전에 새 커밋을 성공적으로 생성 했습니까?
Chris

4
아, 문제가 보입니다! 나는 다른 지역 지점에있었습니다 (보다 master). 그래서 나는 실행해야했다 : git push -f heroku the_branch_i_changed:master.
Benny Neugebauer

22

UI에서도 할 수 있습니다!

  1. Heroku대시 보드에 로그인하고 deploy섹션으로 이동
  2. Manual deploy옵션 찾기

Deploy Branch버튼을 누르 세요!

여기에 이미지 설명 입력


2
이 옵션을 사용하려면 앱을 GitHub에 연결해야합니다. 앱을 GitHub 리포지토리에 연결하지 않고 Heroku Git 배포 방법을 사용하는 경우 수동으로 배포하는 방법이 즉시 명확하지 않습니다.
Derek

11

이제 가장 최근에 배포 된 슬러그를 다시 릴리스 할 수있는 Heroku 명령 줄용 플러그인도 있습니다.

참조 https://www.npmjs.com/package/heroku-releases-retry를


처음에는 이것이 해결책이라고 생각했지만 실제로는 재배포 만하고 다시 빌드하지는 않습니다. 그러나 새 커밋을 푸시하여 Git 기록을 손상시키지 않고 다시 빌드하는 방법도 있습니다. stackoverflow.com/q/9713183/322863
aef

4

당신은 달릴 수 있고 heroku restart --app app_name갈 수 있습니다.


3
이것은 앱을 다시 빌드하지 않고 다시 시작하기
만합니다.

@PanMan "푸시 할 항목이 없는데 어떻게 앱을 재배포 할 수 있습니까?"라는 질문입니다. 앱을 다시 빌드하라고 요청하는 것이 아니라 다시 시작해야하며 변경 사항이 없다는 점을 감안할 때 왜 어쨌든 원하는지 알 수 없습니다.
Leandro

1
"다시 시작"이 아니라 "재배치"라고 명확하게 표시됩니다. 예를 들어, Heroku를 사용하여 앱을 Dockerize하려고하기 때문에 재배포 (다시 시작하지 않음)해야하며 디버깅 할 때 잠재적으로 내 자식 트리를 오염시키고 싶지 않습니다. 이것이 내가이 질문을 어떻게 끝 냈는지입니다.
Mike K
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.