원격 Git 브랜치를 어떻게 생성합니까? 만든 원격 분기를 추적하는 방법에 대한 비슷한

업스트림 ‘푸시’하려는 로컬 브랜치를 만들었습니다. 스택 오버플로에서 새로 만든 원격 분기를 추적하는 방법에 대한 비슷한 질문이 있습니다.

그러나 내 워크 플로는 약간 다릅니다. 먼저 로컬 지점을 만들고 싶습니다. 만족스럽고 지점을 공유하고 싶을 때만 업스트림을 푸시합니다.

  • 어떻게해야합니까? (내 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>는 일반적으로 origingit이 복제 한 리모컨에 부여하는 이름입니다. 그런 다음 동료는 해당 지점을 당기면 로컬로 자동 생성됩니다.

그러나 공식적으로 형식은 다음과 같습니다.

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가 무엇이든 푸시합니다 .