한 브랜치에서 다른 브랜치로 변경 사항을 커밋하고 푸시 할 수 있습니까? 다른 브랜치로 커밋하기
내가 BRANCH1에 변경 내용을 커밋 가정 및 브랜치로 밀어합니다.git push origin **BRANCH2**
을 그리고 BRANCH1를 재설정 : BRANCH1에서
, 그것은 할 유효합니까? 이 브랜치의 빨리 감기가의 경우에만 작동합니다 또는 당신이 그것을 강제하는 경우하지만 확실히
한 브랜치에서 다른 브랜치로 변경 사항을 커밋하고 푸시 할 수 있습니까? 다른 브랜치로 커밋하기
내가 BRANCH1에 변경 내용을 커밋 가정 및 브랜치로 밀어합니다.git push origin **BRANCH2**
을 그리고 BRANCH1를 재설정 : BRANCH1에서
, 그것은 할 유효합니까? 이 브랜치의 빨리 감기가의 경우에만 작동합니다 또는 당신이 그것을 강제하는 경우하지만 확실히
거의 작동합니다.
기본이 아닌 지점에 밀어, 소스 심판 대상 REF 지정해야합니다 : 내 경우git push origin branch1:branch2
또는
git push <remote> <branch with new changes>:<branch you are pushing to>
. 그런 일을 할 수있는 올바른 구문은
git push <remote> <source branch>:<dest branch>
가 어떻게 작동하는지에 대한 자세한 사항에 대한 git push man page에 "refspec"의 설명을 참조한다. 강제 푸시와 재설정은 모두 "기록을 다시 쓰는"작업이므로 원격 저장소 및 기타 다른 저장소와 관련하여 수행중인 작업을 절대적으로 확신하지 않는 한 희미한 마음으로 시도해서는 안됩니다. 같은 프로젝트의 포크/클론을 가진 사람들.
감사합니다 : 당신은 단지를 통해 체리 픽, 에 인수를위한 commitish이 필요합니다! 나는'git push -force 원격 로컬 브랜치 : 원격 브랜치 (remote branch) '로 강제 할 수 있다고 덧붙일 것이다. –
내가 하나가 지역 커밋했다을하는 origin\master
으로 푸시되지 않았지만 내 로컬 master
지점에 커밋되었습니다. 이 로컬 커밋은 이제 다른 분기로 푸시되어야합니다. 당신이 이런 식으로 뭔가를 할 수망할 놈의 확장으로
GIT 명령 줄에서 수행 할 수도 있습니다.예 David Christensen 기술 :
난 당신이
git cherry-pick
+git reset
훨씬 빠른 워크 플로우로 찾을 수 있습니다 생각 : "기능"으로 분기되는으로, 당신 같은 시나리오를 사용하여최상위 잘못되는 커밋은이 작업을 수행하는 것이 훨씬 쉬울 것 :
git checkout master
git cherry-pick feature
git checkout feature
git reset --hard HEAD^
작업의 꽤 저장 및
git cherry-pick
가 처리 할 수 있도록 설계 한 시나리오입니다.커밋되지 않은 경우에도 잘 작동합니다. 커밋;
git checkout master
git cherry-pick $sha1
git checkout feature
git rebase -i ... # whack the specific commit from the history
'branch1'과'branch2' 둘 다 리모트에 있어야합니까? 만약 당신이 로컬'branch1'에서 원격'origin branch2'로 푸시하고 싶다면? – orad
@orad : 아니요. 첫 번째 부분은 실제로 로컬 커밋의 식별자입니다. 그것은 심지어 지사 일 필요가 없습니다. – SLaks
먼저 원격 브랜치를 체크 아웃하지 않고 원격 브랜치를 다른 브랜치로 푸시하려면 어떻게해야합니까? – abhisekp