programing tip

로컬 Git 브랜치를 원격 저장소에 복사하는 방법

itbloger 2020. 7. 5. 08:10
반응형

로컬 Git 브랜치를 원격 저장소에 복사하는 방법


지금까지 다음 단계를 수행했습니다.

  1. 원격 Git 저장소를 복제했습니다
  2. 마스터 브랜치를 실험으로 분기
  3. 실험 브랜치에서 편집 / 테스트 / 커밋 된 코드

이제 실험을 마스터로 병합 할 준비가되지 않았습니다. 그러나 나는 그것이 일부 동료들과 공유하는 저장소이므로 원격 저장소로 다시 밀어 넣고 싶습니다. 실험 브랜치에서 내가 한 일을보고 싶습니다. 나는 일반적으로 SSH를 통해 원격 저장소에 액세스합니다.

원격 저장소의 마스터 분기에 영향을주지 않고 원격 저장소에서 로컬 지점을 공유하려면 어떻게합니까?


자식 푸시 매뉴얼 페이지 에 따르면 :

 git push origin experimental

experimental소스 리포지토리에서 일치하는 참조를 찾은 다음 (대부분은 찾을 것임 ) 원래 리포지토리에서 refs/heads/experimental동일한 참조 (예 :)를 업데이트 refs/heads/experimental합니다.
경우 experimental원격으로 존재하지 않았다가 작성 될 것이다 .

이것은 다음과 같습니다.

git push origin experimental:refs/heads/experimental

experimental현재 experimental분기 를 복사하여 오리진 저장소에 분기 작성하십시오 .
이 양식은 로컬 이름과 원격 이름이 다른 경우 원격 저장소에 새 분기 또는 태그를 작성하는 데만 필요합니다 . 그렇지 않으면 심판 이름 자체가 작동합니다.

또는 git tip 에서 언급했듯이 "지점의 기본 원격"을 설정할 수 있습니다.

git config를 사용하여 지정된 브랜치에 기본 원격을 할당 할 수 있습니다. 이 기본 리모콘은 달리 지정하지 않는 한 해당 분기를 푸시하는 데 사용됩니다.

이것은 git clone을 사용할 때 이미 수행되었으므로 인수없이 git push를 사용하여 로컬 마스터 분기를 푸시하여 원본 저장소의 마스터 분기를 업데이트 할 수 있습니다.

git config branch.<name>.remote <remote> 

이를 수동으로 지정하는 데 사용할 수 있습니다.


Jan 은 ( git> = 1.7.0 ) push -u(또는 push --set-upstream) 옵션을 제안합니다 .

최신이거나 성공적으로 푸시 된 모든 브랜치에 대해 인수가없는 git-pull (1) 및 기타 명령에서 사용하는 업스트림 (추적) 참조를 추가하십시오.

그렇게하면 git config를 수행 할 필요가 없습니다.

git push -u origin experimental

지사의 이름 인 경우 experimental, 원격의 이름입니다 origin, 그것은이다

git push origin experimental

git push -u <remote-name> <branch-name>새로 만든 브랜치가 동일한 리포지토리에서 스폰되지 않으면 작동하지 않습니다. 예를 들어을 사용하여 새 브랜치를 만들지 않은 경우 git checkout -b new_branch에는 작동하지 않습니다.

예를 들어, 두 개의 서로 다른 리포지토리를 로컬로 복제했으며 repo2 / branch1을 repo1 /에 복사 한 다음 푸시해야했습니다.

링크를 통해 로컬 리포지토리 (다른 리포지토리에서 복제)를 원격 리포지토리로 푸시 할 수있었습니다.


다음은 GitHub의 원격 관리를위한 신뢰할 수있는 GitHub의 페이지입니다 http://github.com/guides/push-a-branch-to-github은 . 모든 질문에 답하는 데 도움이됩니다.


tl; dr

$ git push --set-upstream origin your_new_branch

더 많은 정보

당신이 당신의 커밋을 거의하지 않은 후에 :

$ git checkout -b your_new_branch
$ git add file
$ git commit -m "changed file"

업스트림을 지정하여 분기를 다음과 같이 원격 저장소 중 하나로 푸시합니다.

$ git push --set-upstream REMOTE YOUR_BRANCH

리모컨으로 볼 수 있습니다

$ git remote -v

일반적으로 단일 기본 remote가 origin있습니다. 따라서 명령은 다음과 같습니다.

$ git push --set-upstream origin your_new_branch

모든 결과적인 푸시는로만 가능합니다 git push.

참고 URL : https://stackoverflow.com/questions/805222/how-to-copy-a-local-git-branch-to-a-remote-repo

반응형