헤로쿠: 다른 지역 깃 지점을 헤로쿠/마스터에게 푸시하는 방법
헤로쿠는 '마스터'를 제외한 모든 지점을 무시하는 정책을 가지고 있습니다.
Heroku의 디자이너들은 이 정책에 대한 훌륭한 이유를 가지고 있을 것입니다(스토리지 및 성능 최적화를 위해 추측합니다). 개발자로서 제가 어떤 로컬 토픽 브랜치에서 작업하든,저는 헤로쿠의 마스터를 해당 지역 토픽 브랜치로 전환하고 "git push herku-f"를 수행하여 헤로쿠에 마스터를 덮어쓰는 쉬운 방법을 원합니다.
http://progit.org/book/ch9-5.html 의 "Fushing Refspecs" 섹션을 읽고 얻은 것은
git push-fherku local-filename-filename:refs/heads/master
제가 정말 원하는 것은 구성 파일에서 이를 설정하여 "git push heroku"가 항상 위의 작업을 수행하도록 하는 방법입니다. 로컬 주제 분기를 현재 분기의 이름으로 대체합니다.그 일을 하는 방법을 아는 사람이 있다면 저에게 알려주세요!
물론 이에 대한 경고는 Heroku 앱/리저장소로 이동할 수 있는 유일한 사용자인 경우에만 합리적이라는 것입니다.테스트 또는 QA 팀은 이러한 저장소를 관리하여 서로 다른 후보 지점을 사용해 볼 수도 있지만, 특정 날짜에 어떤 지점을 사용할지 모두가 합의할 수 있도록 조정해야 합니다.
말할 필요도 없이, 모든 것을 백업하기 위해 이러한 제한 없이 별도의 원격 저장소(GitHub 등)를 두는 것도 매우 좋은 방법입니다.저는 그 하나를 "오리진"이라고 부르고 헤로쿠에 대해 "헤로쿠"를 사용하여 "git push"는 항상 모든 것을 오리진으로 백업하고 "git push heroku"는 현재 제가 있는 어떤 브랜치든 헤로쿠의 마스터 브랜치로 밀어넣고 필요하면 덮어씁니다.
이것이 효과가 있을까요?
[원격 "영웅쿠"]url = git@heroku.com : my-app.git푸시 = +refs/heads/*:refs/heads/master
저는 제가 실험을 시작하기 전에 더 경험이 많은 사람의 말을 듣고 싶습니다. 하지만 저는 제가 Heroku에 더미 앱을 만들고 그것으로 실험할 수 있다고 생각합니다.
페칭에 관해서는, 헤로쿠 저장소가 쓰기 전용인지 아닌지는 별로 신경 쓰지 않습니다.GitHub과 같은 별도의 저장소를 사용하여 모든 작업을 백업하고 클로닝할 수 있습니다.
각주:이 질문은 Heroku와 지점 전략을 사용하는 Good Git 배포와 비슷하지만 완전히 같지는 않습니까?
https://devcenter.heroku.com/articles/git#deploying-code 을 참조하십시오.
$ git push heroku yourbranch:master
에, 드카드사용할때의, 그은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
git push -f heroku local_branch_name:master
저한테는 효과가 있어요
git push -f heroku otherBranch:master
다른 개발자의 푸시와 충돌하지 않도록 -f(force 플래그)를 사용하는 것이 좋습니다.수정기 제어에 Git를 사용하지 않고 전송용으로만 사용하기 때문에 강제 플래그를 사용하는 것이 합리적입니다.
출처 :- 공식 문서
다른 로컬 Git 분기를 Heroku/master에 푸시하는 가장 안전한 명령입니다.
git push -f heroku branch_name:master
참고: -f를 사용하지 않고도 푸시할 수 있지만, 다른 개발자의 푸시와 충돌하지 않도록 -f(force 플래그)를 사용하는 것이 좋습니다.
또한 Gitflow 시스템 및 기능 분기를 사용하는 경우에는
feature/mobile_additions
그리고 스테이징 투라고 불리는 깃 리모콘을 사용하면 헤로쿠에 푸시하는 명령은
git push stagingtwo feature/mobile_additions:master
git push heroku $(git branch --show-current):master
또는 다음을 수행합니다.
git push heroku HEAD:master
당신은 herku_san을 확인해야 합니다, 그것은 이 문제를 꽤 잘 해결합니다.
예를 들어, 다음과 같은 작업을 수행할 수 있습니다.
git checkout BRANCH
rake qa deploy
또한 새로운 Heroku 인스턴스를 스핀업하여 새로운 서버에 주제 분기를 배포할 수 있습니다.
git checkout BRANCH
# edit config/heroku.yml with new app instance and shortname
rake shortname heroku:create deploy # auto creates deploys and migrates
그리고 물론 여러분이 무언가를 자주 한다면 더 간단한 갈퀴 작업을 할 수 있습니다.
저는 이것이 도움이 된다는 것을 알았습니다.http://jqr.github.com/2009/04/25/deploying-multiple-environments-on-heroku.html
Heroku Labs는 이제 푸시할 분기를 지정할 수 있는 Github 추가 기능을 제공합니다.
이 베타 기능에 대한 Heroku의 설명을 참조하십시오.
당분간 베타 테스터로 등록해야 합니다.
그래야 한다고 생각합니다.
push = refs/heads/*:refs/heads/*
대신에...
2022년 어느 순간, 'git push herku otherbranchname:master'라는 구문이 저에게 더 이상 통하지 않았습니다.항상 "모든 최신 정보"를 반환합니다.Heroku 문서를 참조한 후 "master"가 "main"으로 변경되었다는 것을 알게 되었습니다. 그래서 구문은 다음과 같습니다.
git push heroku otherbranchname:main
언급URL : https://stackoverflow.com/questions/2971550/heroku-how-to-push-different-local-git-branches-to-heroku-master
'programing' 카테고리의 다른 글
Ruby에서 DateTime 및 Time으로 변환 (0) | 2023.06.01 |
---|---|
Xcode 10 - 이미지 리터럴을 더 이상 사용할 수 없습니다. (0) | 2023.06.01 |
오류 발생: pgsql이 레일에서 작동하도록 하려고 할 때 사용자 "postgres"에 대한 피어 인증이 실패했습니다. (0) | 2023.06.01 |
터미널에서 루비 스크립트를 실행하는 방법은 무엇입니까? (0) | 2023.06.01 |
단일 RSpec 테스트를 실행하는 방법은 무엇입니까? (0) | 2023.06.01 |