로컬 Git 브랜치를 다른 이름의 리모콘으로 쉽게 푸시하려면 어떻게해야합니까? checkout -b

항상 두 이름을 모두 지정하지 않고 다른 이름을 가진 원격 지점이있는 로컬 지점을 밀고 당기는 쉬운 방법이 있는지 궁금합니다.

예를 들면 다음과 같습니다.

$ git clone myrepo.git
$ git checkout -b newb
$ ...
$ git commit -m "Some change"
$ git push origin newb:remote_branch_name

이제 누군가 remote_branch_name을 업데이트하면 다음을 수행 할 수 있습니다.

$ git pull

그리고 모든 것이 병합되고 빨리 전달됩니다. 그러나 로컬 “newb”를 변경하면 다음 작업을 수행 할 수 없습니다.

$ git push

대신, 나는 :

% git push origin newb:remote_branch_name

조금 어리석은 것 같습니다. 경우 git-pull사용이 git-config branch.newb.merge곳에서 끌어 결정하기 위해, 왜 수없는 git-push비슷한 설정 옵션이? 이것에 대한 좋은 지름길이 있습니까? 아니면 먼 길을 계속해야합니까?



답변

확실한. 그냥 설정 push.default하는 upstream(즉 동일하다 자신의 업스트림에 밀어 지점 pull에 의해 정의에서 끌어 branch.newb.merge오히려 (의 기본 설정 인 이름에 일치하는 것들에 지점을 밀어보다,) push.default, matching).

git config push.default upstream

Git 1.7.4.2 이전 에는 호출 tracking하지 않았 upstream으므로 Git의 이전 버전을 사용하는 경우 tracking대신 사용하십시오. 이 push.default옵션은 Git 1.6.4에 추가되었으므로 그보다 오래된 버전 인 경우이 옵션이 전혀 없으며 푸시 할 지점을 명시 적으로 지정해야합니다.


답변

초기 푸시를 수행 할 때 -u 매개 변수를 추가 하십시오 .

git push -u origin my_branch:remote_branch

후속 푸시는 당신이 원하는 곳으로 갈 것입니다.

편집하다:

의견에 따라 풀만 설정합니다.

git branch --set-upstream

해야합니다.


답변

Adam 의 명령 은 더 이상 사용되지 않습니다. 당신이 사용할 수있는:

git branch --set-upstream-to origin/my_remote_branch my_local_branch

의 상류 지점 설정 my_local_branch에를 origin/my_remote_branch.


답변

나를 위해 일한 과정은 다음과 같습니다.

git clone original-repo-url
git remote rename origin upstream
git remote add origin new-repo-url

이제 새 리포지토리는 ‘원본’이고 원래 리포지토리는 ‘업스트림’입니다. git remote -v를 실행하여 확인하십시오. (참고 : 업스트림은 원본 리포지토리에서 가져 오는 데 사용됩니다. 로컬 복사본을 제공하려는 프로젝트와 동기화하기 위해-원점은 자신의 리포지토리에 기여할 수 있기 때문에 끌어 당기는 데 사용됩니다).

git push origin master

이제 새로운 원격 저장소의 마스터 (Github)는 원래 마스터와 동기화되지만 기능 분기는 없습니다.

git rebase upstream/branch-name
git push origin master

Rebase는 스마트 병합입니다. 그런 다음 다시 마스터로 이동하면 선택한 기능 분기가 새 저장소에서 마스터로 표시됩니다.

선택 과목:

git remote rm upstream
git remote add upstream new-repo-url

답변

나는 지금 꽤 오랫동안 같은 문제에 부딪쳤다. 나는 마침내 일련의 진술을 가지고 있으므로 git push origin local:remote매번 할 필요가 없습니다 . 나는 이것을 따랐다.

git branch --set-upstream-to origin/remote_branch_name
git config push.default upstream
git push

다른 이름 (첫 번째 줄)으로 원격 지사로 업스트림을 설정 한 다음 해당 업스트림을 기본 (두 번째 줄)으로 설정하면 세 번째 줄은 이러한 규칙을 준수하고 설정된 업스트림으로 푸시됩니다.