로컬 Git 브랜치를 원격의 마스터 브랜치로 푸시하려면 어떻게합니까?


468

로컬 리포지토리에 develop이라는 브랜치가 있으며 원점으로 푸시 할 때 원점 / 마스터와 병합되는지 확인하고 싶습니다. 현재 푸시하면 원격 개발 브랜치에 추가됩니다.

어떻게해야합니까?


로컬로 병합하지 않고 origin원격으로 푸시 하지 않으려는 특별한 이유가 있습니까?
bhamby

@galador는 로컬로 병합하는 것을 의미한다고 생각 master하지만 올바른 지적입니다. 원점의 마스터 브랜치에 대해 충분히 안정적인 경우 반드시 마스터 브랜치에 대해 충분히 안정적입니다!
Cascabel

1
@Jefromi 그래, 오타. -_-
bhamby

2
@Jefromi는 당신이 당신의 로컬 마스터에서 무언가를 작업하고 있다고 아직 상상할 수없는 커밋을했다고 상상해보십시오. 그런 다음 긴급한 과제가 있음이 밝혀졌습니다. 원격 마스터에서 로컬 브랜치를 작성하고 작업 한 후 변경 사항을 다시 마스터로 푸시하십시오. 어쩌면 그것은 최선의 방법은 아니지만 그것이 나에게 일어난 일이며 그 일을했습니다. 의도 한대로 완벽하게 작동했습니다. 글쎄, 나는 처음부터 별도의 지방 지점에서 일해야했지만, 항상 지점을 가지는 것은 고통스럽고 너무 늦었습니다.
pinkeen

21
Heroku 환경에서 어떻게 작동하는지 확인하기 위해 개발 지점을 Heroku의 비공개 테스트 응용 프로그램으로 푸시하고 있습니다. 확실히 내 코드를에 병합하고 싶지 master않지만 Heroku는 코드 master가 앱 내에 있지 않으면 코드를 실행하지 않습니다 . 이것은 합법적 인 사용 사례와 함께 완벽하게 합리적인 요청입니다!
JacobEvelyn

답변:


813
$ git push origin develop:master

또는 더 일반적으로

$ git push <remote> <local branch name>:<remote branch to push into>

24
"git push origin : master"를 수행하지 마십시오
Mangirdas Skripka

48
진정한 @MangirdasSkripka! 그냥 사용 git push origin head:master하면 : 현재 브랜치의 이름을 지정하지 않는 경우
Francesc 로사

23
좋은 아이디어 @ FrancescRosàs, HEAD (대문자)입니다.
smokku

내가 수선 권한이있는 경우 @Mipadi, 난이 이동할 수 있습니다
Neeraj 샤르마에게

11
@NeerajSharma : 멘더 권한이 무엇인지, 또는 무엇을 옮길 지 모르겠습니다.
mipadi

194

의견에 언급 된 사람들은 아마 그렇게하고 싶지 않을 것입니다 ... mipadi의 대답은 당신이하고있는 일을 안다면 절대적으로 정확합니다.

내가 말할 것:

git checkout master
git pull               # to update the state to the latest remote master state
git merge develop      # to bring changes to local master from your develop branch
git push origin master # push current HEAD to remote master branch

 


23
다만, 그의 요청에는 어떤 의미가 있습니다. 저는이 사례를 사용하여 개발을 Heroku 마스터에게 배포 (푸시)합니다
Fabiano Soriani

5
이 기술은 고급 git 사용자에게만 적용됩니다. 너무 어려울뿐만 아니라 사람들이 자신이하는 일과 그것이 왜 작동하는지 이해해야합니다. 누구나 자유롭게 원하는대로 git을 사용할 수 있지만, 내가 제안한 접근법을 따르는 것이 교육 목적, 특히 git 신규 이민자에게 훨씬 좋습니다. "주제 분기"정리는 시작하는 방법입니다. 필요한 경우 나중에 워크 플로를 최적화 할 수 있습니다.
유진 사진

1
실제로는 매우 일반적인 일입니다. 마스터 브랜치는 일반적으로 배포 브랜치입니다. 두 팀이 의도적으로 배포를 분산시키는 경우, 체리로 고른 로컬 브랜치를 사용하여 패치를 업스트림으로 푸시 할 가능성이 있습니다. 이제 변경 사항을 브랜치로 업스트림으로 푸시 한 다음 거기에서 마스터로 병합해야한다고 주장 할 수도 있지만 다른 방법으로 IMO를 수행하는 것은 그렇게 이상하지 않습니다.
dgatwood

+1 프로덕션 릴리스를 "빌드"하는 가장 논리적 인 방법입니다.
Ryan

develop과 병합하고 싶지 않지만 master를 기반으로 개발 한 경우 어떻게 하시겠습니까?
user239558

-1

@Eugene의 답변으로 확장하면 로컬 리포지토리에서 마스터 / 개발 지점으로 코드를 푸시하는 다른 버전이 있습니다.

지점 '마스터'로 전환하십시오.

$ git checkout master

로컬 리포지토리에서 마스터로 병합 :

$ git merge --no-ff FEATURE/<branch_Name>

마스터로 푸시 :

$ git push

-1

아래 단계를 따라 로컬 리포지를 마스터 브랜치로 푸시하십시오.enter code here

$ git 상태

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