업스트림 ‘푸시’하려는 로컬 브랜치를 만들었습니다. 스택 오버플로에서 새로 만든 원격 분기를 추적하는 방법에 대한 비슷한 질문이 있습니다.
그러나 내 워크 플로는 약간 다릅니다. 먼저 로컬 지점을 만들고 싶습니다. 만족스럽고 지점을 공유하고 싶을 때만 업스트림을 푸시합니다.
- 어떻게해야합니까? (내 Google 검색에는 아무것도 나타나지 않는 것 같습니다).
- 동료에게 업스트림 저장소에서 가져 오도록하려면 어떻게해야합니까?
업데이트 Git 2.0에는 아래에 쓴 간단한 답변 이 있습니다. https://stackoverflow.com/a/27185855/109305
답변
먼저 지점을 로컬로 만듭니다.
git checkout -b <branch-name> # Create a new branch and check it out
원격 지점은 원격 서버로 푸시하면 자동으로 생성됩니다. 따라서 준비가되면 다음과 같이하면됩니다.
git push <remote-name> <branch-name>
where <remote-name>
는 일반적으로 origin
git이 복제 한 리모컨에 부여하는 이름입니다. 그런 다음 동료는 해당 지점을 당기면 로컬로 자동 생성됩니다.
그러나 공식적으로 형식은 다음과 같습니다.
git push <remote-name> <local-branch-name>:<remote-branch-name>
그러나 하나를 생략하면 두 가지 이름이 동일하다고 가정합니다. 이것을 경고 의 한마디로 말하면 :<remote-branch-name>
(콜론으로) 만 지정하는 중대한 실수를하지 않으면 원격 지점이 삭제됩니다!
후속 git pull
작업에서 수행 할 작업을 알기 위해 대신 다음을 사용할 수 있습니다.
git push --set-upstream <remote-name> <local-branch-name>
아래 설명 --set-upstream
된대로이 옵션은 업스트림 분기를 설정합니다.
최신이거나 성공적으로 푸시 된 모든 브랜치에 대해 인수가없는 git-pull (1) 및 기타 명령에서 사용하는 업스트림 (추적) 참조를 추가하십시오.
답변
먼저 지점을 로컬로 만들어야합니다
git checkout -b your_branch
그런 다음 지점에서 로컬로 작업하고 지점을 공유 할 준비가되면 지점을 밀어 넣습니다. 다음 명령은 지점을 원격 저장소 원점으로 푸시하고 추적합니다.
git push -u origin your_branch
팀원은 다음을 수행하여 지점에 도달 할 수 있습니다.
git fetch
git checkout origin/your_branch
git push에 인수를 전달하지 않고 언제든지 브랜치에서 작업하고 푸시 할 수 있습니다 (인수없는 git push는 마스터를 원격 마스터로, your_branch 로컬을 your_branch로 원격으로 푸시합니다 …)
git push
팀원은 커밋을 수행하여 지점으로 푸시 한 다음 명시 적으로 푸시 할 수 있습니다.
... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch
또는 git push에 대한 인수를 피하기 위해 분기를 추적
git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push
답변
간단한 Git 2.0 이상 솔루션 :
현재 망할 놈의 2.0 동작은 간단되었다 :
push.default = current
인생을 더 쉽게하기 위해 git을 구성 할 수 있습니다 :
나는 이것을 추가하여 이제 새로운 브랜치를 업스트림으로 밀어 넣을 수 있습니다.
$ git push -u
-u
같은 이름의 원격 지점을 추적합니다. 이제이 구성으로 git push에 대한 원격 참조를 자동 추측합니다. 에서 git.config 문서 :
push.default
참조 스펙이 명시 적으로 지정되지 않은 경우 git push가 수행 할 조치를 정의합니다.
push.default = current
-현재 분기를 눌러 수신 측에서 동일한 이름의 분기를 업데이트하십시오. 중앙 및 비 중앙 워크 플로 모두에서 작동합니다.
나에게 이것은 일상적인 Git 워크 플로를 단순화 한 것입니다. 구성 설정은 지점을 로컬로 추가하고 원격으로 생성하려는 ‘일반적인’사용 사례를 처리합니다. 또한 git co remote_branch_name
( --set-upstream-to
플래그 를 사용 하는 것과 달리) 그냥 원격으로 로컬 브랜치를 만들 수 있습니다 .
이 질문에 대해 잘 알고 있으며 대답은 다소 오래되었지만 동작이 변경되어 이제 작업 과정을 단순화하기 위해 구성 옵션이 존재합니다.
전역 Git 구성에 추가하려면 명령 행에서 다음을 실행하십시오.
$ git config --global push.default current
답변
이전 답변에서 언급했듯이
git push <remote-name> <local-branch-name>:<remote-branch-name>
지역 지점을 추진하기에 충분합니다.
동료는 다음 명령을 사용하여 모든 원격 분기 (새 분기 포함)를 가져올 수 있습니다.
git remote update
그런 다음 지점에서 변경하려면 일반적인 흐름을 수행하십시오.
git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>
답변
현재 분기를 기반으로 로컬로 새 분기를 만듭니다.
git checkout -b newbranch
평소대로 변경 사항을 적용하십시오. 그런 다음 상류로 밀어 넣으십시오.
git push -u origin HEAD
이것은 현재 브랜치를 같은 이름의 브랜치로 푸시 origin
하고 추적 origin HEAD
하여 나중에 지정할 필요가 없도록 하는 지름길 입니다.
답변
현재 브랜치에서 브랜치를 만들려면
git checkout -b {your_local_branch_name}
당신은 원격 지점에서 지점을 원한다면, 당신은 시도 할 수 있습니다
git checkout -b {your_local_branch_name} origin/<remote_branch_name>
변경이 완료되면 파일을 추가 할 수 있습니다.
git add -A or git add <each_file_names>
그런 다음 로컬 커밋을 수행하십시오.
git commit -m 'your commit message'
원격 저장소로 푸시하려는 경우
git push -u origin <your_local_branch_name>
모두 함께
git checkout -b bug_fixes
또는 원격 지점에서 지점을 만들려면 개발 이라고 말하십시오.
자식 체크 아웃 -b bug_fixes origin / development
다음을 통해 지점으로 원격 리포지토리로 푸시 할 수 있습니다.
git push -u origin bug_fixes
언제든지 다른 지점에서 master 라고하는 지점을 업데이트하려고합니다 .
git pull origin master
.
답변
실제로 로컬 브랜치를 가지지 않고 원격 브랜치를 만들려면 다음과 같이 할 수 있습니다.
git push origin HEAD:refs/heads/foo
리모컨에 존재하지 않는 foo 분기로 HEAD가 무엇이든 푸시합니다 .