태그 - git 특정 브랜치 push




Heroku/master에 다른 지역의 Git 브랜치를 푸시하는 법 (6)

Heroku는 모든 지점을 무시하는 정책을 가지고 있지만 '마스터'.

Heroku의 디자이너가이 정책에 대한 훌륭한 이유가 있다고 확신하지만 (저장소 및 성능 최적화를 추측하고 있습니다), 개발자로서 저의 결과는 내가 작업하고있는 지역의 주제 항목이 무엇이든간에, 나는 쉬운 방법을 원합니다. Heroku의 마스터를 해당 지역의 주제 지점으로 전환하고 Heroku에서 마스터를 덮어 쓰려면 "git push heroku -f"를 수행하십시오.

http://progit.org/book/ch9-5.html 의 "Pushing Refspecs"섹션을 읽었을 때 얻은 정보는 다음과 같습니다.

git push -f heroku local-topic-branch:refs/heads/master

"git push heroku"가 항상 위의 작업을 수행하여 local-topic-branch 를 현재의 모든 브랜치 의 이름으로 대체하도록 구성 파일에서이를 설정하는 방법이 좋습니다. 누구든지 그 방법을 알고 있다면 알려주세요!

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

말할 것도없이, 모든 것을 백업하기위한 이러한 제한없이 별도의 원격 저장소 (예 : GitHub)를 갖는 것이 매우 좋습니다. 나는 그 "원산지"라고 부를 것이고 Heroku에 "heroku"를 사용하여 "git push"가 항상 모든 것을 원점에 백업하고 "git push heroku"가 현재 내가있는 모든 지점을 Heroku의 마스터 지점에 푸시하여 덮어 씁니다 필요하다면.

이게 효과가 있니?

[remote "heroku"]
    url = [email protected]:my-app.git
    push = +refs/heads/*:refs/heads/master

내가 실험을 시작하기 전에 좀 더 경험이 많은 사람의 이야기를 듣고 싶습니다.하지만 Heroku에서 어플 리케이션을 만들어 실험 해 볼 수는 있습니다.

페칭에 관해서는, Heroku 저장소가 쓰기 전용인지 여부는 신경 쓰지 않습니다. GitHub과 같은 별도의 저장소가있어 모든 작업을 백업하고 복제 할 수 있습니다.

각주 :이 질문은 Heroku와 분기 전략을 사용하는 Good Git 배포 와 비슷하지만 비슷하지 않습니까?


Heroku / master에게 다른 지역의 Git 브랜치를 푸시하는 가장 안전한 명령.

git push -f heroku branch_name:master

참고 : -f를 사용하지 않고 푸시 할 수 있지만 다른 개발자의 푸시와의 충돌을 피하기 위해 -f (강제 플래그)를 사용하는 것이 좋습니다.



나는 그것이 있어야한다고 생각한다.

push = refs/heads/*:refs/heads/*

대신 ...




와일드 카드를 사용할 때는 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