로컬 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.