"git push heroku master"는 푸시 할 위치와 다른 리포지토리로 푸시하는 방법을 어떻게 알 수 있습니까?


92

Heroku에서 호스팅되는 저장소로 푸시 할 때 다음 명령을 실행해야합니다.

git push heroku master

이 명령에서 무엇을 heroku하고 master표시합니까? git은 푸시 할 위치를 어떻게 알 수 있습니까? (git 경로)

또한 heroku rename앱 이름을 바꾸는 데 사용할 수 있는지 몰랐기 때문에 이전에 앱 이름 trytryheroku를 사용하고 있었는데 지금은 사용하고 heroku create real-thing있지만 푸시해도 여전히 trytryheroku로 푸시됩니다 ... 푸시 할 수있는 방법이 있습니까? 대신 진짜?

답변:


107

'heroku'부분은 설정 한 리모컨의 이름입니다. 처음으로 heroku 앱을 만들 때 애플리케이션을 가리키는 git 원격 호출 'heroku'를 만들 때-프로젝트 내에서 'git remote'를 입력하면 원격 끝점을 보여줍니다. 원격의 이름으로 'heroku'를 사용하도록 제한하는 것은 없습니다. 애플리케이션에 대해 여러 환경이있는 경우 프로덕션 또는 스테이징이라는 원격이있을 수 있습니다.

'마스터'부분은 원격으로 푸시하려는 로컬 브랜치입니다. 예를 들어 'myfeature'라는 이름의 기능 브랜치에서 개발하고이를 heroku에 배포하려는 경우 수행 할 수 있습니다.

git push heroku myfeature:master

여기에 추가 된 : master는 내 로컬 myfeature브랜치를 master원격 의 브랜치 로 푸시하는 것입니다. 참고 : heroku는 마스터 브랜치에서만 배포 할 수 있습니다.

당신은 Heroku가의 자식 원격 URL이 변경됩니다 응용 프로그램의 이름을 바꿀 경우 - 할 git remote -v 당신에게 당신의 응용 프로그램 사용 REPO 힘내 표시됩니다 어떤을, 당신은 아마, 이전 Heroku가 원점을 삭제하고 새로운 하나를 추가해야합니다 git remote rm heroku다음git remote add heroku git@newgitpathfromcontrolpanel

Git에 대해 더 알고 싶다면 책을 추천 합니다.


git remote set-url <remote-name> <new-url>(Git 1.7.0 이상) 또는 git config remote.<remote-name>.url <new-url>을 사용하거나 편집 .git/config( git config -eGit 1.6.3 이상을 통해 가능) 을 사용하여 원격의 URL을 업데이트 할 수 있습니다 .
Chris Johnsen 2011 년

3
매우 도움이되었습니다. 감사합니다
Diego Urenia 2012

43

1 부 : "git은 어디로 푸시해야하는지 어떻게 알 수 있습니까?"

위에서 언급 한 명령을 실행하기 전에 :

$ git push heroku master

실행할 다른 단계는 항상 거의 없습니다. Git 및 Heroku 설치, 로컬 Git 리포지토리 만들기, heroku에 가입, 명령 줄을 통해 heroku 로그인, 호스팅 지점에 대한 heroku 핸들 만들기 ( PART 2에서 설명 )

1. 로컬 Git 저장소 :

    $ git init
    Initialized empty Git repository in .git/
    $ git add .
    $ git commit -m "my first commit"
    Created initial commit 5df2d09: my first commit
     44 files changed, 8393 insertions(+), 0 deletions(-)
     create mode 100644 README
     create mode 100644 Procfile
     create mode 100644 app/controllers/source_file
    ...

2. Heroku에 가입 (ed)하고 명령 줄을 통해 로그인합니다.

$ heroku login
Enter your Heroku credentials.
Email: user@example.com
Password:
Could not find an existing public key.
Would you like to generate one? [Yn]
Generating new SSH public key.
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub

따라서 실행 $ git push heroku master하여 코드 / 앱을 Heroku에 푸시했습니다.


파트 2 :하지만 herokumaster 는 무엇을 나타 냅니까?

Heroku보다 Git 질문에 가깝습니다. Heroku는 배포를 위해 Git (Distributed Version Control System)에 의존하는 호스팅 플랫폼입니다.

'푸시'의 기본 개념은 로컬 (작업 머신에서)에있는 일부 (파일, 앱, ..)를 다른 곳,이 경우 원격 저장소 (원격 머신)로 푸시하는 것입니다.

'push'를 사용하기 전에 Git에서 원격 저장소 (전체 URL)에 대한 참조 역할을하는 원격 (핸들)을 생성합니다. 다음 명령을 사용합니다.

$ git remote add <remote-name-of-our-choice> <URL-where-you-be-pushing-yourapp>

'push'명령의 기본 구조는 다음과 같습니다.

$ git push <remote-name> <branch>

따라서 $ git push heroku master실제로 코드 / 앱 / 파일 (일부 로컬 Git 리포지토리에서)을 원격 리포지토리 'heroku'로 푸시합니다.

이 'heroku'리모컨이 언제 만들어 졌는지 궁금해서 $ heroku create 실행시 추가되었습니다.

$ heroku create
Creating stark-fog-398... done, stack is cedar
http://stark-fog-398.herokuapp.com/ | git@heroku.com:stark-fog-398.git
Git remote heroku added

마지막 줄 " Git remote heroku added "를 확인하십시오.

더 명확하게하기 위해 모든 원격을 확인 / 출력하는 Git 명령이 있습니다. $ git remote -v 다음과 유사한 내용을 표시합니다.

$ git remote -v
heroku     git@heroku.com:somerepo.git (fetch)
heroku     git@heroku.com:somerepo.git (push)

따라서 $ heroku create를 수행했을 때 다음 명령이 (암시 적으로) 어딘가에서 실행되었다고 가정 할 수 있으므로 heroku repo (url) *에 대한 heroku 원격 생성

$ git remote add heroku git@heroku.com:somerepo.git

12

heroku는 푸시를 지원하기 위해 heroku gem의 일부로 필요하며 master는 단순히 밀어 넣는 git 브랜치입니다. git은 heroku 애플리케이션을 만들면 푸시가 자동으로 설정되므로 푸시 할 위치를 알고 있습니다.

git remote -v

변경해야 할 경우 제거하고 git remote rm heroku새 응용 프로그램을 추가하십시오.git remote add heroku git@heroku.com:your-application-15.git


원격 브랜치는 일반적 으로 푸시중인 브랜치와 동일한 이름으로 생성됩니다. (git push heroku master : mymaster 예, 또는 confgi 파일을 통해 변경 가능)
sehe

2
이 대답은 사실이 아닙니다. heroku리모컨의 이름이며 heroku gem과는 완전히 연결되지 않습니다.
jergason


1

당신처럼 나도 git과 heroku의 핵심을 이해하는 데 어려움을 겪었고 혼란 스러웠습니다. 그러나 이제 귀하의 질문에 간단히 대답 할 수있는 약간의 명확성을 얻었습니다.

프로젝트 디렉토리에 git 설정이 있다고 가정합니다. 프로젝트 폴더에 "config"라는 파일이 포함 된 .git 숨겨진 폴더가 있으며 여기에는 원격에 대한 모든 정보가 포함됩니다.

Remote는 origin, heroku, staging, prod 등과 같이 개별적으로 이름이 지정된 개별 저장소입니다.

명령에서 heroku는 heroku 프로젝트에 매핑 한 저장소를 나타냅니다. 구성 파일을 열면 URL이 표시됩니다.

당신이 달릴 때

git push heroku master

git에게 현재 오리진 저장소의 마스터 브랜치를 heroku 저장소의 마스터 브랜치로 푸시하라고 말하고 있습니다.

나머지 모든 세부 사항은 이미 다른 답변에서 공유되므로 반복하고 싶지 않습니다. 그래서 이것은 내 이해에 따라 짧은 대답입니다. 도움이 되었기를 바랍니다.


0

하지만 내가 밀어 붙이면 여전히 trytryheroku로 밀어 붙인다 ... 대신에 진짜로 밀어 붙이는 방법이 있을까?

나는 당신이 관심을 가질만한 대답을 찾았습니다.

https://dashboard.heroku.com/apps/NAMEOFYOURAPP/deploy/heroku-git

$ cd my-project/
$ git init
$ heroku git:remote -a nameofyourapp

$ git add .
$ git commit -am "make it better"
$ git push heroku master

그렇게하면 heroku는 어디를 밀어야할지 알게됩니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.